「var that = this;」を理解するJavaScript では
JavaScript では、「this」キーワードは現在のオブジェクトを表します。 「this」を「var that」に割り当てると、開発者は、「this」が変更される可能性がある入れ子関数内であっても、後でアクセスできる元のオブジェクト参照への参照を維持できます。
次のコード スニペットを考えてみましょう。
function Somefunction(){ var that = this; ... }
ここで、「this」を「that」に代入すると、「Somefunction」スコープ内で「that」が常に元のオブジェクトを参照するようになります。 実例。これは、ネストされた関数の呼び出し後に 'this' 参照が変更される可能性があるクロージャまたはイベント ハンドラーを操作する場合に有益です。
説明のために、要素の 'click' イベントをリッスンする関数があると仮定します。
var colours = ['red', 'green', 'blue']; document.getElementById('element').addEventListener('click', function() { // this is a reference to the element clicked on var that = this; colours.forEach(function() { // this is undefined // that is a reference to the element clicked on }); });
イベント ハンドラー内では、「this」はクリックされた要素を指しますが、内部の「forEach」関数内では、 「これ」は不定になります。これを「that」にエイリアスすることで、クリックされた要素への元の参照に引き続きアクセスできます。
結論として、「var that = this;」です。現在のオブジェクトへの一貫した参照が確実に維持されるため、「this」が動的に変更される可能性があるイベント処理またはクロージャーのシナリオで特に役立ちます。ただし、コードの意図をより明確にするために、明確にするために、「clickedEl」や「currentElement」などのより説明的なエイリアスの使用を検討してください。
以上がJavaScript で `var that = this;` を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。