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

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











typedef struct は、構造体の使用を簡素化するために構造体型のエイリアスを作成するために C 言語で使用されます。構造体の別名を指定することで、新しいデータ型を既存の構造体に別名付けします。利点としては、可読性の向上、コードの再利用、型チェックなどが挙げられます。注: エイリアスを使用する前に構造体を定義する必要があります。エイリアスはプログラム内で一意であり、宣言されているスコープ内でのみ有効である必要があります。

Java における変数の期待値の例外は、変数の初期化、null 値の使用、およびローカル変数のスコープの認識によって解決できます。

JavaScript クロージャーの利点には、変数スコープの維持、モジュール化コードの有効化、遅延実行、およびイベント処理が含まれますが、欠点としては、メモリ リーク、複雑さの増加、パフォーマンスのオーバーヘッド、およびスコープ チェーンの影響が挙げられます。

C++ の #include プリプロセッサ ディレクティブは、外部ソース ファイルの内容を現在のソース ファイルに挿入し、その内容を現在のソース ファイル内の対応する場所にコピーします。主に、コード内で必要な宣言を含むヘッダー ファイルをインクルードするために使用されます。たとえば、標準入出力関数を組み込むための #include <iostream> などです。

C++ スマート ポインターのライフ サイクル: 作成: スマート ポインターは、メモリが割り当てられるときに作成されます。所有権の譲渡: 移動操作を通じて所有権を譲渡します。リリース: スマート ポインターがスコープ外に出るか、明示的に解放されると、メモリが解放されます。オブジェクトの破壊: ポイントされたオブジェクトが破壊されると、スマート ポインターは無効なポインターになります。

JavaScript では、this のポインティング タイプには、1. グローバル オブジェクト、2. 関数呼び出し、4. イベント ハンドラー、5. アロー関数 (this の外側の継承) が含まれます。さらに、bind()、call()、および apply() メソッドを使用して、これが何を指すかを明示的に設定できます。

できる。 C++ では、ネストされた関数の定義と呼び出しが可能です。外部関数は組み込み関数を定義でき、内部関数はスコープ内で直接呼び出すことができます。ネストされた関数により、カプセル化、再利用性、スコープ制御が強化されます。ただし、内部関数は外部関数のローカル変数に直接アクセスすることはできず、戻り値の型は外部関数の宣言と一致している必要があります。内部関数は自己再帰的ではありません。

Java のクロージャを使用すると、外部関数が終了した場合でも、内部関数が外部スコープの変数にアクセスできるようになります。匿名の内部クラスを通じて実装されると、内部クラスは外部クラスへの参照を保持し、外部変数をアクティブに保ちます。クロージャによりコードの柔軟性が向上しますが、匿名の内部クラスによる外部変数への参照により、それらの変数が存続するため、メモリ リークのリスクに注意する必要があります。
