2011-03-11 8 views
0

非常に簡単な質問...Javascriptの変数説明

は何

知りたいのですが、「これ」変数は... JavaScriptでexplanation on quirksmode.orgは良いスタートかもしれない おかげ

+0

作成者、Brendan Eich自身から取り出してください。 Alan Stormの説明へのリンクはhttp://www.aminutewithbrendan.com/pages/20110303 –

答えて

0

javascriptの変数は、他の言語と同様に、現在のオブジェクトを参照します。たとえば :これはあなたがidで得DOMElementのを参照することになりonclickのハンドラで

document.getElementById('link1').onclick = function() 
{ 
this.href = 'http://google.com'; 
} 

0

それは私たちがしている機能やスコープの現在の所有者への参照です

あなたがここでより多くの情報を見つけることができます。JavaScriptでhttp://www.quirksmode.org/js/this.html

0

これは常に機能の「所有者」を指し、私たちは、関数がメソッドであることをオブジェクトに対して実行しています。
詳細については、以下のリンクを確認してください。
http://www.quirksmode.org/js/this.html

2

は大まかに言えば、それはあなたが機能を呼び出す際に、ドットの左側にあるものを表す:

// inside of f, this = x 
x.f(1, 2, 3) 

// inside of f, this = c 
a.b.c.f(1, 2, 3) 

規則には例外がいくつかあります。

まず、あなたはドットがない場合

:あなた、

// Invokes f with this = myVar, not x (arguments 2 an onward are the ordinary arguments) 
x.f.call(myVar, 1, 2, 3) 

// Invokes f with this = myVar, not x (arguments are passed as an array) 
x.f.apply(myVar, [1, 2, 3]) 

サード:

​​

を第二に、あなたが明示的にthisの値を設定する方法callおよび/またはapplyを使用することができますnewを使用して関数を呼び出すと、は新しく作成されたオブジェクトを参照します:

// inside of f, this = a new object, not x 
new x.f(1, 2, 3) 
関連する問題