如果我们假设javascript使用两种方法构建正确的继承,使用函数构造函数和关键字'new',以及使用Object.create的纯原型继承:
如何通过使用独有的函数构造函数方法来创建原型链:
function Original() {
this.name = 'John';
}
var copyOne = new Original();
copyOne.lastname = 'Doe';
var copyTwo = ?
现在,我如何构建'copyTwo'对象,继承'copyOne'和'Original'两个项目。但是copyOne对象中的项应该在copyTwo的原型内部,因此它在内存使用上更轻(因为继承的对象都只指向一个原型实例,并且没有项的副本)。我转到Chrome调试器并输入console.log(copyTwo)以查看这些项目在copyTwo对象中的位置。
我知道这个原型链可以使用Object.create方式构建,但我不知道如何用函数构造函数和'new'来模仿它。
让我们假设我不想使用纯粹的原型实例来使用Object.create来构建copyTwo。
有办法吗?感谢。
答案 0 :(得分:2)
function Copy(){}
Copy.prototype = new Original;
Copy.prototype.lastname="doe";
var copyTwo = new Copy;
但是,没有两种继承,js具有原型继承,就是这样。
如果你想要轻量级内存使用,不要在构造函数中设置静态道具,而是原型:
function Original() { }
Original.prototype = { name:'John'};