我写了这样的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)

10-05 21:12
查看更多