我写了这样的jQuery UI小部件:
$.widget("ns.wid", {
options: {
attr1: "something1",
attr2: {
"sub_attr": this.__renderList,
"css": {
"opacity": '0.58'
},
},
},
__renderList: function() {
console.log("I should be invoked through attr2.sub_attr!");
}
});
现在它不起作用,因为
this
中的attr2
不引用小部件实例,而是引用Window
。如何在不直接命名窗口小部件实例的情况下引用它?谢谢。 最佳答案
在对象的构造函数中,将函数绑定(bind)到其上下文,如下所示:this._renderList = this._renderList.bind(this)
要不就:
“Sub_att”:this._renderList.bind(this)