JavaScript中的继承 下篇

                //经典继承
function SuperType() {
this.words = "凛冬将至";
}
SuperType.prototype.place = '风息堡';
function SubType() {
SuperType.call(this);
//在子对象内部调用父对象的构造函数
//获取父对象属性的副本,注意是副本。
//因此,各个实例对象的属性之间相互
//互不干扰。这就解决了原型对象的引用
//属性问题。
}
var sub1 = new SubType();
var sub2 = new SubType();
sub1.words = '雄狮吼吼';
console.log(sub1.words);
console.log(sub2.words);
//虽然各个实例的属性之间互不干扰,
//但是存在的问题是无法共享父对象原型的属性和方法。
console.log(sub1.place);
//解决方案是组合继承:将原型链和经典继承结合使用。
//原型链用于解决超类的原型对象的属性共享问题。

//经典继承用于解决,复制超类实例的属性。

                function SuperType() {
this.words = "凛冬将至";
}
SuperType.prototype.place = '风息堡';
function SubType() {
SuperType.call(this);
}
SubType.prototype = new SuperType();
SubType.prototype.show = function() {
console.log('welcome to prototype');
}
var sub1 = new SubType();
var sub2 = new SubType();
sub1.words = '雄狮吼吼';
console.log(sub1.words);
console.log(sub2.words);
console.log(sub1.place);

猜你喜欢

转载自blog.csdn.net/qq_23143555/article/details/80721447
今日推荐