如何在没有原型继承的情况下调用JS父方法

时间:2015-08-17 15:21:43

标签: javascript inheritance

我正在开展一个大型项目并决定不进行继承原型设计(我希望能够更好地控制varthis.*访问权限。

无论如何,我的课程看起来像这样:

FirstScene.prototyp

FirstScene.prototype = Object.create(_SceneCanvas.prototype)
FirstScene.prototype.constructor = FirstScene

function FirstScene(){
     var arguments = [/*args*/]
     _SceneCanvas.apply(this, arguments)



     this.bar = function(){ /*do other stuff*/ }
}

如果我在foo()bar()并且想要调用父方法,我该怎么做呢?我尝试了一些看起来像_SceneCanvas.prototype.foo.call(params)的代码无济于事。

谢谢!

1 个答案:

答案 0 :(得分:3)

在JavaScript中,通常的做法是获取对旧函数的引用,并在新函数中调用它。

var bar = this.bar;
this.bar = function () {
  bar.call(this);
  // ...
};

请查看this fiddle以查看其实际效果。