私はこのような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!");
}
});
attr2
内部this
ではなく、それはWindow
を参照して、ウィジェットのインスタンスに参照しないよう今では、働いていません。どのように私はウィジェットのインスタンスを直接命名することなく参照することができますか?ありがとう。 this._renderList = this._renderList.bind(この)
それとも: "Sub_att":あなたのオブジェクトのコンストラクタで
は私がについて悪い何かを聞いた.bind()、それはJavaScriptで悪い習慣を検討しているのですか? –
ところで、2番目の方法は機能しません。これはWindowオブジェクトを参照するためです。最初の方法では、その行はどこに行くべきですか?プロトタイプ内部。 –
うわー、私は賛成であまりにも多くの意見を見つけることができたと確信して、反対意見が多すぎます。私は最初にJSでコンテキストと 'this'がどのように動作しているのかを理解する必要があります。おそらく、_renderListをそのオブジェクトに宣言する必要はなく、バインドは全く行われません。バインドは機能しますか? –