如何将参数传递给继承的方法?
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”
答案 0 :(得分:5)
如果必须使用call
,只需在“this”参数后面传递参数:
interactiveElement.prototype.moveTowards.call(this, target); //how do I pass target
但如果它实际上是一个继承的方法,你可以简化它:
this.moveTowards(target);
如果moveTowards
位于projectile
原型链中的任何位置,您可以通过this
访问它,而不是使用...prototype...call
。如果您有原型继承,通常只使用call
来引用“由链上较低的成员重载”的函数,例如如果projectile
有moveTowards
且interactiveElement
有moveTowards
,您想要致电ineractiveElement
。