ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「this」キーワードは、さまざまな関数呼び出しコンテキストでどのように動作しますか?
関数における "this" キーワードのダイナミクスを明らかにする
JavaScript の領域では、"this" キーワードは処理時に非常に重要です。機能付き。その値は、使用される呼び出しパターンによって異なります。
呼び出しパターン
JavaScript 関数は、次の 4 つの異なる方法で呼び出すことができます。
メソッドとして:
関数がオブジェクトのメソッドとして呼び出される場合、「this」はオブジェクト自体を指します。例:
const foo = { bar() { console.log(this); // Logs "foo" } }; foo.bar();
関数として:
関数がスタンドアロン エンティティとして呼び出される場合、「this」はデフォルトでグローバル オブジェクトになります (通常はブラウザでは「ウィンドウ」)。例:
function bar() { console.log(this); // Logs "Window" (global object) } bar();
コンストラクターとして (「new」キーワードを使用):
関数が「new」キーワードを使用して呼び出される場合、新しいオブジェクトが作成され、「this」はそのオブジェクトを指します。例:
function Constructor() { this.property = "value"; } const instance = new Constructor(); console.log(instance.property); // Logs "value"
「apply」メソッドの場合:
「apply」メソッドでは、物体。例:
function bar(a, b) { console.log(this); // Logs "obj" console.log(a); // Logs "1" console.log(b); // Logs "2" } const obj = { a: 1, b: 2 }; bar.apply(obj);
入れ子関数とコールバックの影響
入れ子関数とコールバックでは、親関数の呼び出しパターンによって、入れ子関数の「this」の値。親関数がメソッドとして呼び出される場合、「this」はオブジェクトを指します。関数として呼び出された場合は、グローバル オブジェクトを参照します。コールバックで「this」の目的の値を保持するには、バインディング関数やアロー関数の使用などのテクニックが採用されます。
以上がJavaScript の「this」キーワードは、さまざまな関数呼び出しコンテキストでどのように動作しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。