实例对象属性和原型对象属性重名问题:
- <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
来源: http://www.bubuko.com/infodetail-3491811.html