1 //寄生组合式继承
2 function object(o) {
3 function F() {}
4 F.prototype =
o;
5 return new F();
6 }
7
8 function inheritPrototype(subType, superType) {
9 var prototype =
object(superType.prototype);
10 prototype.constructor =
subType;
11 subType.prototype =
prototype;
12 }
13
14 function SuperType(name) {
15 this.name =
name;
16 this.colors = ["red", "blue", "green"
];
17 }
18
19 SuperType.prototype.sayName =
function() {
20 console.log(
this.name);
21 };
22
23 function SubType(name, age) {
24 SuperType.call(
this, name);
25 this.age =
age;
26 }
27
28 inheritPrototype(SubType, SuperType);
29
30 SubType.prototype.sayAge =
function() {
31 console.log(
this.age);
32 };
33
34 var instance1 =
new SubType("Nicholas", 29
);
35 instance1.colors.push("black"
);
36 console.log(instance1.colors);
37 instance1.sayName();
38 instance1.sayAge();
39
40 var instance2 =
new SubType("Greg", 27
);
41 console.log(instance2.colors);
42 instance2.sayName();
43 instance2.sayAge();
转载于:https://www.cnblogs.com/qzsonline/archive/2012/04/30/2476826.html
相关资源:JAVA上百实例源码以及开源项目