JavaScriptの「this」のコンテキストを変更できますか?
-
20-08-2019 - |
質問
var UI$Contract$ddlForm_change = function() {
//'this' is currently the drop down that fires the event
// My question is can I change the context so "this" represents another object?
this = SomeObject;
// then call methods on the new "this"
this.someMethod(someParam);
};
これは可能ですか?
解決
いいえ、それは不可能です。
値を指定してメソッドを呼び出すことができます。 これ (使用して method.apply()
/method.call()
) ただし、キーワードを再割り当てすることはできません。 this
.
他のヒント
あなたはthis
はの関数内でのからを指し、内容を変更することはできません。
ただし、することができます。の呼び出しの特定のコンテキスト内の関数 - 特定のオブジェクトを参照するcall
ように - 。apply
を使用するか、<=>
J-Pは正しいです。これは不可能です。 JavaScriptの言語仕様書ECMA-262を参照してください。ここから、標準をダウンロードすることができます:
http://www.ecma-international.org/publications/標準/ ECMA-262.htmする
ファイルは、ECMA-262.pdfおよび39ページ、セクション10.1.7です。
10.1.7この
に関連付けられ、この値があります すべてのアクティブな実行コンテキスト。ザ・ この値は、呼び出し元に依存し、 コードの種類は、実行されています コントロールが入るときに決定 実行コンテキスト。この値 実行コンテキストに関連付けられています 不変である。
"不変である" に注意してください。すなわち、変更することはできません。
所属していません StackOverflow