代码

<script>
        //这个函数最终返回一个对象,这个对象拥有传入对象o的全部属性和方法。从而实现了继承
        //object函数,传入一个对象
        function object(o) {
            //创建一个空构造函数
            function F() { }
            //这个空构造函数的原型对象指向o这个对象
            F.prototype = o;
            //返回F的实例对象
            return new F();
        }
        //主要是这个函数,实现子类原型对象只继承父类原型对象中的属性
        function inheritPrototype(subType, superType) {
            var prototype = object(superType.prototype);
            prototype.constructor = subType;
            subType.prototype = prototype;
        }

        function Father(name) {
            this.name = name;
            this.color = ["red", "blue"];
        }
        Father.prototype.SayName = function () {
            console.log(this.name);
        }
        function Son(name,age) {
            Father.call(this, name);
            this.age = age;
        }
        inheritPrototype(Son, Father);
        Son.prototype.SayAge = function () {
            console.log(this.age);
        }

    </script>

 

posted on 2017-11-23 09:16  邢帅杰  阅读(124)  评论(0编辑  收藏  举报