在Crockford的伪经典继承模式中使用`this`

时间:2010-05-26 20:23:15

标签: javascript inheritance

我刚看过The Good Parts,我对某些事情感到有些困惑。 Crockford的伪古典继承的例子是这样的:

var Mammal = function (name) {
    this.name = name;
};

Mammal.prototype.get_name = function () {
    return this.name;
};

这个问题的部分原因是构造函数有“它的内部空洞” - 方法在构造函数之外。我没有看到在构造函数中将get_name分配给this有什么问题。是不是因为我们最终得到了get_name方法的多个副本?

1 个答案:

答案 0 :(得分:3)

是的,基本上就是这样。

通过将它们分配给原型,它们将由Mammal的所有实例继承:只有一个 >无论有多少Mammal,都要在整个系统中复制这些功能。