ホームページ >ウェブフロントエンド >jsチュートリアル >JS の有益な情報の共有 - これは問題を示しています
通常、を使用すると少しわかりにくいので、まとめを書きます。
アロー関数が存在しない前は、これは関数が実行されている環境オブジェクトであると述べましたが、アロー関数では、これはそれが定義されているオブジェクトでした。誰もが最初に知っていること: 実行中の関数 その時点で配置されている環境オブジェクト。
1. 関数呼び出しとして、これはグローバル オブジェクト
#2. オブジェクトのメソッド呼び出しとして、オブジェクトが呼び出し元ですcontext、そして this はオブジェクトを指します。
#3. コンストラクター呼び出しとして、コンストラクターは新しく作成されたオブジェクトの初期化を試み、このオブジェクトを呼び出しコンテキストとして使用し、新しく作成されたオブジェクトを指します。
4. 関数の call/apply メソッドを介した間接呼び出し。call/apply メソッドの最初のパラメーターは呼び出しコンテキストです。関数本体で、次の場所にアクセスします。これを通じて取得されます。
アロー関数では、this オブジェクトが定義されているスコープです。つまり、アロー関数自体には、 this と内部の this は外側のコードで、ブロック スコープ内の this です。
5、独立関数
このアロー関数はグローバル環境、つまり で定義されます。これはウィンドウ
6、オブジェクト メソッド
を指します。上記のように、foo はグローバルに定義されているため、これはウィンドウを指します。 make this point to obj ?
前の記事によると、関数がオブジェクトのメソッドとして呼び出されるとき、this はオブジェクトを指し、次のように書き換えることができます: ## foo が呼び出されたときに
func が定義されますが、このときの foo のスコープは obj なので、obj7とコンストラクター を指します。アロー関数にはこれがないため、コンストラクタ関数として使用できません。そうでない場合は、エラーが報告されます
#8, bind/上記の call
: func はグローバルに定義されているため、0 が出力されます。オブジェクト メソッドと同様に、次のように書き換えて出力できます。 1
推奨チュートリアル: 「JS チュートリアル >>
以上がJS の有益な情報の共有 - これは問題を示していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。