Я написал виджет JQuery UI, как это:Javascript: Как ссылаться на владельца объекта владельца внутри объекта параметров, подобного этому?
$.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(), это считается плохой практикой в JavaScript? –
Кстати, ваш второй способ не работает, так как это относится к объекту Window. Для первого пути, куда должна идти эта линия? Внутри прототипа. –
Вау, я уверен, что мы могли бы найти слишком много мнений в пользу, и слишком много мнений против. Я думаю, во-первых, вы должны понимать, как контекст и «это» работают в JS, может быть, вам не нужно объявлять _renderList в этот объект, а привязка вообще не займет места. Работает ли «привязка»? –