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