我正在开展一个大型项目并决定不进行继承原型设计(我希望能够更好地控制var
和this.*
访问权限。
无论如何,我的课程看起来像这样:
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)
的代码无济于事。
谢谢!
答案 0 :(得分:3)
在JavaScript中,通常的做法是获取对旧函数的引用,并在新函数中调用它。
var bar = this.bar;
this.bar = function () {
bar.call(this);
// ...
};
请查看this fiddle以查看其实际效果。