我已经阅读了一些关于 javascript 原型继承模式的教程,但我不确定以下两个中哪个是最佳实践。我注意到很多人都采用这种继承模式:
var A = function (){}
A.prototype = {}
var B = function () {
A.apply(this, arguments); // Calling the constructor of A
}
B.prototype = new A(); // Inherit from A through an instance
或者,有一些来源执行以下模式:
var A = function (){}
A.prototype = {}
var B = function () {
A.apply(this, arguments); // Calling the constructor of A
}
for (var prop in A.prototype) {
B.prototype[prop] = A.prototype[prop]; // Inherit from A by copying every property/methods from A
}
虽然这两种模式都有效,但我很少看到人们使用后一种继承模式(即从父原型复制每个属性/方法) - 为什么?将属性/方法直接从父级复制到子级有什么问题吗?另外,这两种模式在某些方面是否存在本质上的不同?
谢谢你。