Javascript高级学习笔记3--原型及原型链2

实例对象属性和原型对象属性重名问题:

<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

猜你喜欢

转载自www.cnblogs.com/guoguolt/p/12633653.html