如何在Javascript OO中将参数传递给子方法

时间:2013-12-24 16:56:47

标签: javascript

如何将参数传递给继承的方法?

interactiveElement.prototype.moveTowards = function(target){
     console.log(target);
} 

projectile.prototype.fire = function(target){
    interactiveElement.prototype.moveTowards.call(this); //how do I pass target
}

获取错误:未捕获的TypeError:无法读取未定义的属性“0”

1 个答案:

答案 0 :(得分:5)

如果必须使用call,只需在“this”参数后面传递参数:

interactiveElement.prototype.moveTowards.call(this, target); //how do I pass target

但如果它实际上是一个继承的方法,你可以简化它:

this.moveTowards(target);

如果moveTowards位于projectile原型链中的任何位置,您可以通过this访问它,而不是使用...prototype...call。如果您有原型继承,通常只使用call来引用“由链上较低的成员重载”的函数,例如如果projectilemoveTowardsinteractiveElementmoveTowards,您想要致电ineractiveElement