实例对象属性和原型对象属性重名问题:
<script type="text/javascript"> function Person(age,sex){ this.age=age; this.sex=sex; }; Person.prototype.sex="女"; var per = new Person(10,"男"); console.log(per.sex); //实例对象访问属性,先从实例对象中找,后从原型对象中找,如果找不到则返回undefined //不能通过实例对象改变原型对象的值 //如果要改变原型对象中的值: 原型对象.属性名=值 per.sex="太监"; //改变的是实例对象的值 console.log(per.sex); console.dir(per); </script>
页面元素原型链:
<script type="text/javascript"> var divObj = document.getElementById("div"); console.dir(divObj); </script>
divObj的__proto__-->
HTMLDIVElement.prototype的__proto__-->
HTMLElement.prototype的__proto__-->
Element.prototype的__proto__-->
Node.prototype的__proto__-->
EventTarget.prototype的__peoto__-->
Object.prototype的__proto__-->null
Object.prototype没有__proto__所以Object.prototype中的__proto__是null