我在继承我自己的Backbone.View。如果在父类(super class)的初始化函数中编写:

_.bindAll(this,'many','methods');

并指定要绑定(bind)到此上下文的方法,我可以通过以下方式从子类中调用super:

this.constructor.__super__.initialize.apply(this, arguments);

但是,如果在父类(super class)中,我将使用:
_.bindAll(this)

相反,当我从子类中调用super时,
this.constructor.__super__

未定义。为什么会这样?

最佳答案

为什么不简单地使用这个来调用 super :

(为了便于说明,我将分成几行,您可以在一行中进行通话)

var thisProto = Object.getPrototypeOf(thisInstance);
var superProto = Object.getPrototypeOf(thisProto);
superProto.superMethod.apply(thisInstance, [param1, param2]);

Reference: GetPrototypeOf

10-08 19:21