我尝试创建一个可以从与我的B类对应的已创建DOM元素调用的方法,如下所示:
$("#" + data.selectedId).eventCallback(data);
我的eventCallback
是在母班A中定义的,您可以在以下代码中看到:
function A (){
this.addToPage = function () {
...
var context = this;
// This call is well overridden
context.onEvent("toto");
jQuery.fn.extend({
// This call uses A's method every time
eventCallback: function (data) {context.onEvent(data);}
});
};
this.onEvent = function (data) {
console.log("to override");
};
}
function B (){
this.onEvent = function (data) {
console.log("overridden");
};
}
B.prototype = Object.create(A.prototype);
正如所评论的那样,当我进入块jQuery.fn.extend
时,我似乎无法使用相同的上下文。有更好(更清洁)的方法吗?我想念一下吗?
编辑,澄清:
A类定义了我的html文档中设置的小部件的结构(所以在我看来,一个实例以某种方式链接到DOM的一部分)。
作为用户,我希望能够选择一个调用方法的小部件(该定义取决于B)。
所以我的想法是在类中实现一个callBack,然后从使用A实例创建的DOM对象中调用它。