JavaScript中的原型链接

时间:2016-01-06 11:19:02

标签: javascript inheritance prototype this code-reuse

目前每次调用makeMoney方法时都尝试向我的Tween添加$ 1,但我收到一个makeMoney方法不是函数的错误。我有预感它与this有关,但我试图将'this'绑定到makeMoney方法无济于事。这真的看起来应该很简单,但我想空了。

var Tween = function() {
    Adolescent.call(this);
    this.age  =  12;
    this.job = 'annoy';
    this.allowance = 5;

};
Tween.prototype.makeMoney = function(){

    return this.allowance ++;
}

Tween.prototype = Object.create(Adolescent.prototype);
Tween.prototype.constructor = Tween;

1 个答案:

答案 0 :(得分:4)

你在这里做的是首先你将函数添加到对象Tween的原型,然后,你用Object.create(Adolescent.prototype)覆盖整个原型对象。这就是为什么它没有定义。

而是在扩展原型之前进行继承。

var Tween = function() {
    Adolescent.call(this);
    this.age  =  12;
    this.job = 'annoy';
    this.allowance = 5;

};

Tween.prototype = Object.create(Adolescent.prototype);
Tween.prototype.constructor = Tween;

Tween.prototype.makeMoney = function(){

    return this.allowance ++;
}