码迷,mamicode.com
首页 > Web开发 > 详细

js中的继承

时间:2014-10-25 14:28:06      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   sp   div   on   log   

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2</title>
</head>
<body>
    <script>
        function SuperType(){

        }
        SuperType.prototype.arr1 = [1,2,3,4,5];
        SuperType.prototype.arr2 = [4,5,6];
        function SubType(){

        }
        SubType.prototype = new SuperType();
        SubType.prototype.arr2 = [7,8,9]

        var i0 = new SuperType();
        alert(i0.arr1);//1,2,3,4,5

        var i1 = new SubType();
        i1.arr1.push(7);
        i1.arr2 = [2,3,4];
        alert(i1.arr1);//1,2,3,4,5,7
        alert(i1.arr2);//2,3,4
        alert(i0.arr1);//1,2,3,4,5,7  此时i0的arr1属性值也对应发生变化

        var i2 = new SuperType();
        alert(i2.arr1);//1,2,3,4,5,7
        alert(i2.arr2);//4,5,6

        var i3 = new SubType();
        alert(i3.arr1);//1,2,3,4,5,7
        alert(i3.arr2);//7,8,9


        alert(i3.constructor);//function  SuperType(){}

        /*
            子类实例对象寻找属性的步骤:1.自身的实例属性;2.子类构造函数原型对象上的属性;3.父类构造函数原型对象上的属性;
            上述步骤也说明了,借用构造函数的方式实现的继承的原理:子类的原型对象是父类的一个实例对象,也就是说子类的原型对象中的[[prototype]]指向的是父类的原型对象。所以说最后的子类实例对象的constructor弹出的是父类构造函数
            注意:如果对父类构造函数中的引用类型属性有修改操作(例如上述实例中数组的添加成员等),则也会影响父类的实例对象对应的该属性值;
        */
    </script>
</body>
</html>

 

js中的继承

标签:style   blog   color   io   ar   sp   div   on   log   

原文地址:http://www.cnblogs.com/bjchenxn/p/4050038.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!