ホームページ  >  記事  >  ウェブフロントエンド  >  このキーワードの詳細な説明は、js_javascript スキルで説明されています。

このキーワードの詳細な説明は、js_javascript スキルで説明されています。

WBOY
WBOYオリジナル
2016-05-16 17:21:27981ブラウズ

これは Javascript 言語のキーワードです。
関数の実行時に自動的に生成される内部オブジェクトを表し、関数内でのみ使用できます。たとえば、

コードをコピー コードは次のとおりです。

function test(){

this.x = 1;

}

this の値は関数を使用するにつれて変化します。ただし、これは関数を呼び出すオブジェクトを参照するという一般原則があります。

以下では、4 つの状況における this の使用法について詳しく説明します。

シナリオ 1: 純粋な関数呼び出し

これは関数の最も一般的な使用法であり、グローバル呼び出しであるため、これはグローバル オブジェクト Global を表します。

次のコードを見てください。実行結果は 1 です。
コードをコピー コードは次のとおりです:

Function test(){

this .x = 1;

alert(this.x)

test();これがグローバル オブジェクトであることを証明するために、コードにいくつかの変更を加えました。



コードをコピーします。
コードは次のとおりです。 var x = 1; function test(){
alter(this.x);

test(); // 1


実行結果は 1 のままです。もう一度変更します。




コードをコピー


コードは次のとおりです。
test(); ; // 0



ケース 2: オブジェクト メソッドとして呼び出す


関数はオブジェクトのメソッドとして呼び出すこともできます。その場合は、上位のオブジェクトを指します。




コードをコピー

コードは次のとおりです:

function test(){
アラート (this.x); var o = {}; ; o.m = テスト; > o.m(); // 1

ケース 3 はコンストラクターとして呼び出されます


いわゆるコンストラクターは新しいオブジェクトを生成しますこの機能を通じて。このとき、this はこの新しいオブジェクトを指します。




コードをコピー


コードは次のとおりです:

Function test(){
This .x = 1;
}

var o = new test();
alert(o.x); 🎜>実行 結果は 1 です。現時点ではこれがグローバル オブジェクトではないことを示すために、コードにいくつかの変更を加えました。コードをコピー

コードは次のとおりです:


var x = 2;

function test(){

this.x = 1;

var o = new test ();

alert(x); //2
演算結果は 2 であり、グローバル変数の値が×は全く変わっていない。 ケース 4 apply call
apply() は関数オブジェクトのメソッドであり、その関数の最初のパラメータは を表します。この関数が呼び出されるオブジェクトが変更されました。したがって、これは最初のパラメータを指します。




コードをコピーします


コードは次のとおりです。


var x = 0;

function test(){

alert(this.x);

var o={}; 🎜> o.m = test;
o.m.apply(); //0

apply() のパラメータが空の場合、デフォルトでグローバル オブジェクトが呼び出されます。したがって、この時点の実行結果は 0 となり、これがグローバル オブジェクトを参照していることがわかります。 コードの最後の行を
に変更した場合、コードをコピーします


コードは次のとおりです。


o.m.apply(o); //1


実行結果は 1 になり、これは現時点でオブジェクト o を表していることがわかります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。