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);
};
これは可能ですか?
いいえ、できません。
thisに指定された値でメソッドを呼び出すことができます(method.apply()
/を使用) method.call()
)ただし、キーワードthis
を再割り当てすることはできません。
this
が参照するものをinside関数から変更することはできません。
ただし、this
またはcall
を使用して、特定のコンテキストで関数をcall -apply
が特定のオブジェクトを参照するようにすることができます。
J-Pは正しいです。これは不可能です。 JavaScript言語仕様書ECMA-262を参照してください。ここから標準をダウンロードできます:
http://www.ecma-international.org/publications/standards/Ecma-262.htm
ファイルはECMA-262.pdfで、39ページのセクション10.1.7です。
10.1.7これ
すべてのアクティブな実行コンテキストに関連付けられたこの値があります。この値は、呼び出し元と実行されているコードのタイプによって異なり、制御が実行コンテキストに入るときに決定されます。実行コンテキストに関連付けられたこの値は不変です。
「不変」に注意してください。つまり、変更できません。