this
1216 ワード
ほとんどの場合、thisの値は関数を呼び出す方法によって決まります.実行時に割当てに設定することはできません.関数を呼び出すたびに異なります.デフォルトの緩和モード(非厳密モード)に基づいて説明します.
グローバル実行コンテキストでは、厳格なモードにあるかどうかにかかわらず、グローバルオブジェクトが参照されます.(Webブラウザでは、ウィンドウオブジェクトはグローバルオブジェクト)
JavaScriptの有限バージョンを選択して、デフォルトのデフォルトのデフォルトの緩和モードを無効にします.
投げる前に無視されたエラー JavaScriptエンジンの最適化が困難になったエラーを修正します. ECMAScriptの次のバージョンで構文を定義することはできません.
関数の内部では、thisの値は関数を呼び出す方法に依存します.単純コール(何も書かれていませんthis) 松
=>windowオブジェクトリファレンス 厳格
=> undefined bindメソッド
ECMAScriptはbind()を導入した.
この機能を変更するための組み込み方法
f.bind(someObject)を呼び出すと、fと同じ本文と範囲を持つ新しい関数が生成されますが、元の関数があります.新しい関数のthisはbind()の最初のパラメータとして永続的に固定され、呼び出し方法には関係ありません. 矢印関数 矢印関数では、これは自分を囲む静的範囲です.グローバル・コードにグローバル・オブジェクトを含めるオブジェクトのメソッド 関数をオブジェクトとして呼び出すメソッドの場合、この値はそのオブジェクト/行のイベントハンドラで
ラインイベントハンドラとしてコードを使用する場合、このコードはプロセッサを配置するDOM要素 に設定される.
リファレンス
グローバルコンテキスト
グローバル実行コンテキストでは、厳格なモードにあるかどうかにかかわらず、グローバルオブジェクトが参照されます.(Webブラウザでは、ウィンドウオブジェクトはグローバルオブジェクト)
厳格なパターンとは?
JavaScriptの有限バージョンを選択して、デフォルトのデフォルトのデフォルトの緩和モードを無効にします.
差異
関数コンテキスト
関数の内部では、thisの値は関数を呼び出す方法に依存します.
=>windowオブジェクトリファレンス
=> undefined
ECMAScriptはbind()を導入した.
この機能を変更するための組み込み方法
f.bind(someObject)を呼び出すと、fと同じ本文と範囲を持つ新しい関数が生成されますが、元の関数があります.新しい関数のthisはbind()の最初のパラメータとして永続的に固定され、呼び出し方法には関係ありません.
let funcUser=func.bind(user);// func의 this를 user로 바인딩함
ラインイベントハンドラとしてコードを使用する場合、このコードはプロセッサを配置するDOM要素
リファレンス
Reference
この問題について(this), 我々は、より多くの情報をここで見つけました https://velog.io/@doctor/thisテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol