これの使用法: 1. 純粋な関数呼び出しでは、これはグローバル オブジェクトを表すために使用されます; 2. 関数がオブジェクト メソッドとして呼び出される場合、これは上位オブジェクトを表すために使用されます; 3.コンストラクターとして呼び出され、this は新しいオブジェクトを表すために使用されます; 4. apply が呼び出されるとき、this は apply() 関数の最初のパラメーターを表すために使用されます。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
これは JavaScript 言語のキーワードです。
関数実行時に関数本体内で自動生成されるオブジェクトであり、関数本体内でのみ使用できます。
function test() { this.x = 1; }
上記のコードでは、関数テストの実行中に、このオブジェクトが内部で自動的に使用可能になります。
それでは、これにはどのような価値があるのでしょうか?
これは、関数の異なる使用シナリオでは異なる値を持ちます。一般に、これは関数が実行される環境オブジェクトです。以下では、4 つの状況におけるこれの使用法について詳しく説明します。
シナリオ 1: 純粋な関数呼び出し
これは関数の最も一般的な使用法であり、グローバル呼び出しであるため、これはグローバル オブジェクトを表します。次のコードを見てください。実行結果は 1 です。
var x = 1; function test() { console.log(this.x); } test(); // 1
ケース 2: オブジェクト メソッドとしての呼び出し
関数はオブジェクトのメソッドとして呼び出すこともでき、その場合、これは上位オブジェクトを参照します。
function test() { console.log(this.x); } var obj = {}; obj.x = 1; obj.m = test; obj.m(); // 1
ケース 3 コンストラクターとしての呼び出し
いわゆるコンストラクター関数は、新しいオブジェクトを生成できる関数です。このとき、this はこの新しいオブジェクトを指します。
function test() { this.x = 1; } var obj = new test(); obj.x // 1
実行結果は 1 です。現時点ではこれがグローバル オブジェクトではないことを示すために、コードにいくつかの変更を加えます。
var x = 2; function test() { this.x = 1; } var obj = new test(); x // 2
実行結果は 2 で、グローバル変数 x の値がまったく変更されていないことを示します。
ケース 4 apply call
apply() は関数のメソッドであり、その機能は関数の呼び出しオブジェクトを変更することです。最初のパラメータは、この関数を呼び出す変更されたオブジェクトを表します。したがって、今回は第一パラメータを指します。
var x = 0; function test() { console.log(this.x); } var obj = {}; obj.x = 1; obj.m = test; obj.m.apply() // 0
apply() のパラメータが空の場合、デフォルトでグローバル オブジェクトが呼び出されます。したがって、この時点の実行結果は 0 となり、これがグローバル オブジェクトを参照していることがわかります。
コードの最後の行を
obj.m.apply(obj); //1
に変更すると、実行結果は 1 になり、これがオブジェクト obj を表していることがわかります。
[推奨学習: JavaScript 上級チュートリアル]
以上がJavaScriptでこれを使用するのは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。