ホームページ >ウェブフロントエンド >jsチュートリアル >非同期コールバックと関数の引数で「この」値を保持するために JavaScript の binding() が必要なのはなぜですか?
JavaScript では、this キーワードは現在実行中の関数を所有するオブジェクトを指します。ただし、非同期コールバックの場合、または関数を引数として他の関数に渡す場合、this の値が失われる可能性があります。
関数が次のメソッドとして呼び出される場合オブジェクト (たとえば、object.method()) の場合、これはオブジェクトを正しく参照します。ただし、関数がスタンドアロン関数 (method() など) として呼び出される場合、これはデフォルトでグローバル オブジェクトになります。
この問題を防ぐために、bind() を使用すると、次のときに this の値を手動で指定できます。将来関数を呼び出す。これは、指定されたオブジェクトに this 値がバインドされた新しい関数を返します。
例 2 では、bind() を使用して新しい関数 (storeMyName2) が作成されます。この参照は myName にバインドされています。これにより、新しい関数が呼び出されるとき、その呼び出し方法に関係なく、myName が参照されるようになります。
例 3 では、storeMyName3 は次の結果に設定されます。 myName.getName() を直接呼び出します。これは、storeMyName3 に戻り値 (単なる文字列「Tom」) が含まれていることを意味します。これはstoreMyNameやstoreMyName2のような関数ではないため、この概念は含まれません。
以上が非同期コールバックと関数の引数で「この」値を保持するために JavaScript の binding() が必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。