JavaScript では、これは現在実行中のコードのコンテキスト オブジェクトを指す特別なキーワードです。関数コンテキスト: これはグローバル オブジェクト ウィンドウを指します。メソッド コンテキスト: これは、メソッドが呼び出されるオブジェクトを指します。コンストラクター コンテキスト: これは、作成される新しいオブジェクトを指します。イベント リスナー コンテキスト: イベントをトリガーした要素を指します。アロー関数コンテキスト: これは親スコープから継承されます。
this
(JavaScript では)
JavaScript では、this
は次のとおりです。現在実行中のコードのコンテキスト オブジェクトを指す特別なキーワード。この値は関数、メソッド、またはオブジェクトを参照する可能性があるため、コンテキストに応じて異なります。
関数コンテキスト
関数コンテキストでは、this
は常にグローバル オブジェクト、つまり window
を指します。物体。したがって、関数内で this
にアクセスすると、グローバル変数と関数にアクセスできます。
<code class="js">function sayHello() { console.log(this); // 输出: Window {...} }</code>
メソッド コンテキスト
メソッド コンテキストでは、this
は常に、メソッドが呼び出されるオブジェクトを指します。これにより、メソッドがオブジェクトのプロパティとメソッドにアクセスできるようになります。
<code class="js">const person = { name: "John", sayName: function () { console.log(this.name); // 输出: John }, };</code>
コンストラクター コンテキスト
コンストラクターは、オブジェクトの作成と初期化に使用される関数です。コンストラクターのコンテキストでは、this
は作成される新しいオブジェクトを指します。
<code class="js">function Person(name) { this.name = name; } const person1 = new Person("John"); console.log(person1.name); // 输出: John</code>
その他のコンテキスト
これらの主要なコンテキストに加えて、this
は次のように使用することもできます:
this
はイベントをトリガーした要素を指します。 this
は、親スコープの this
を継承します。 注意事項
this
はグローバル オブジェクトを指しません。グローバル オブジェクトにアクセスしたい場合は、window
オブジェクトを使用する必要があります。 bind()
、call()
、apply()
メソッドは、## 値を明示的に設定または変更するために ES6 で導入されました。これの###。
以上がjsにおけるthisの役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。