0

所以这是我的 JavaScript:

http://jsfiddle.net/GPNdM/

我有一个扩展 Mammal 原型的 Cat 对象。哺乳动物有 run() 方法。但是当我创建新的 Cat 对象并调用 run() 它告诉我它是未定义的:

function Mammal(config) {
    this.config = config;
}
Mammal.prototype.run = function () {
    console.log(this.config["name"] + "is running!");
}

function Cat(config) {
    // call parent constructor
    Mammal.call(this, config);
}
Cat.prototype = Object.create(Mammal);

var felix = new Cat({
    "name": "Felix"
});
felix.run();

知道为什么吗?

4

1 回答 1

5

应该是Cat.prototype = Object.create(Mammal.prototype),这就是方法所在,而不是Mammal直接。

http://jsfiddle.net/GPNdM/1/

于 2013-06-28T23:45:10.747 回答