1 window.onload = function() {
2 var person1 = new SubType("Gee", 20);
3 var person2 = new SubType("Key", 21);
4
5 person1.colors.push("yellow");
6 alert("person1: " + person1.colors); // red, blue, green, yellow
7 alert("person2: " + person2.colors); // red, blue, green
8
9 person1.sayName(); // Gee
10 person2.sayAge(); // 21
11 };
12
13 function object(o){
14 function F() {}
15 F.prototype = o;
16 return new F();
17 }
18
19 /**
20 * 继承超类型的方法
21 * @param {Object} subType 子类型
22 * @param {Object} superType 超类型
23 * @return {null}
24 */
25 function inheritPrototype(subType, superType) {
26 var prototype = object(superType.prototype); // 创建对象
27 prototype.constructor = subType; // 增强对象
28 subType.prototype = prototype; // 指定对象
29 }
30
31 function SuperType(name) {
32 this.name = name;
33 this.colors = ["red", "blue", "green"];
34 }
35
36 SuperType.prototype.sayName = function() {
37 alert(this.name);
38 };
39
40 function SubType(name, age) {
41 SuperType.call(this, name); // 继承属性,并传递参数,子类型将具有独立属性而非共享属性
42
43 this.age = age;
44 }
45
46 inheritPrototype(SubType, SuperType);
47
48 SubType.prototype.sayAge = function () {
49 alert(this.age);
50 };
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有