function SuperType(){
this.colors=['a', 'b', 'c'];
}
function SubType(){
}
// 继承
SubType.prototype = new SuperType();
var obj1 = new SubType();
obj1.colors.push('d'); // 此时原型对象上的colors被修改了。subtype的所有实例都会共享这一属性。
alert(obj1.colors); // a,b,c,d
var obj2 = new SubType();
alert(obj2.colors); // a,b,c,d
function SuperType() {
this.colors=['a', 'b', 'c'];
}
function SubType(){
superType.call(this);
}
var obj1=new SubType();
obj1.colors.push('d');
console.log(obj1.colors); // a,b,c,d
var obj2=new SubType();
console.log(obj2.colors); // a,b,c
function SuperType(name) { this.name = name; this.colors = ['a', 'b', 'c']; }
SuperType.prototype.sayName = function () { alert(this.name); }; function SubType(name, age) { SuperType.call(this, name); this.age = age; }
SubType.prototype = new SuperType(); SubType.prototype.constructor = SubType; SubType.prototype.sayAge = function () { alert(this.age); }; var obj1 = new SubType('aaa', 10); obj1.colors.push('d'); alert(obj1.colors); // a,b,c,d obj1.sayName(); // aaa obj1.sayAge(); // 10 var obj2 = new SubType('bbb', 20); alert(obj2.colors); // a,b,c,d obj2.sayName(); // bbb obj2.sayAge(); // 20
为什么需要这句代码? SubType.prototype.constructor = SubType;