javascript 寄生组合式继承

来源:互联网 发布:淘宝手机装修模块缝隙 编辑:程序博客网 时间:2024/04/27 15:03
<html><head>    <title>Parasitic Combination Inheritance Example</title>    <script type="text/javascript">                    function object(o){            function F(){}            F.prototype = o;            return new F();        }            function inheritPrototype(subType, superType){            var prototype = object(superType.prototype);   //create object            prototype.constructor = subType;               //augment object            subType.prototype = prototype;                 //assign object        }                                        function SuperType(name){            this.name = name;            this.colors = ["red", "blue", "green"];        }                SuperType.prototype.sayName = function(){            alert(this.name);        };        function SubType(name, age){              SuperType.call(this, name);                        this.age = age;        }        inheritPrototype(SubType, SuperType);                SubType.prototype.sayAge = function(){            alert(this.age);        };                var instance1 = new SubType("Nicholas", 29);        instance1.colors.push("black");        alert(instance1.colors);  //"red,blue,green,black"        instance1.sayName();      //"Nicholas";        instance1.sayAge();       //29                       var instance2 = new SubType("Greg", 27);        alert(instance2.colors);  //"red,blue,green"        instance2.sayName();      //"Greg";        instance2.sayAge();       //27                   </script></head><body></body></html>