相关疑难解决方法(0)

使用Backbone样式的原型继承时防止无限递归

我正在使用一个改编自Backbone的扩展功能(除了一些改变,以符合我雇主的命名惯例),以实现原型继承.在设置了以下结构(下面简化得很简单)之后,我得到了一个无限循环.

Graph = function () {};
Graph.extend = myExtendFunction;
Graph.prototype = {
   generateScale: function () {
       //do stuff
   }
}
 // base class defined elsewhere
UsageGraph = Graph.extend({
   generateScale: function () {
       this.constructor._super.generateScale.call(this); // run the parent's method
       //do additional stuff
   }
})

ExcessiveUsageGraph = Graph.extend({
   // some methods, not including generateScale, which is inherited directly from Usage Graph
})

var EUG = new ExcessiveUsageGraph();
EUG.generateScale(); // infinite loop
Run Code Online (Sandbox Code Playgroud)

循环正在发生,因为ExcessiveUsageGraph上升原型链来UsageGraph运行方法,但this仍然设置为一个实例,ExcessiveUsageGraph当我this.constructor._super用来运行父方法时,它也向上一步到达 …

javascript inheritance prototypal-inheritance backbone.js

6
推荐指数
2
解决办法
1318
查看次数

Jquery - 获取当前活动

我知道我可以通过将其作为函数的参数传递来获取事件:

$(".selector").on("click", function(event) {


});
Run Code Online (Sandbox Code Playgroud)

如果它不是函数的参数,我怎么能得到它?

例如,

$(".selector").on("click", function() {

// var event = ???

});
Run Code Online (Sandbox Code Playgroud)

jquery

4
推荐指数
1
解决办法
5152
查看次数