我刚看过The Good Parts,我对某些事情感到有些困惑。 Crockford的伪古典继承的例子是这样的:
var Mammal = function (name) {
this.name = name;
};
Mammal.prototype.get_name = function () {
return this.name;
};
这个问题的部分原因是构造函数有“它的内部空洞” - 方法在构造函数之外。我没有看到在构造函数中将get_name
分配给this
有什么问题。是不是因为我们最终得到了get_name
方法的多个副本?
答案 0 :(得分:3)
是的,基本上就是这样。
通过将它们分配给原型,它们将由Mammal
的所有实例继承:只有一个 >无论有多少Mammal
,都要在整个系统中复制这些功能。