非常に簡単な質問...Javascriptの変数説明
は何
知りたいのですが、「これ」変数は... JavaScriptでexplanation on quirksmode.orgは良いスタートかもしれない おかげ
非常に簡単な質問...Javascriptの変数説明
は何
知りたいのですが、「これ」変数は... JavaScriptでexplanation on quirksmode.orgは良いスタートかもしれない おかげ
javascriptの変数は、他の言語と同様に、現在のオブジェクトを参照します。たとえば :これはあなたがidで得DOMElementのを参照することになりonclickのハンドラで
document.getElementById('link1').onclick = function()
{
this.href = 'http://google.com';
}
。
それは私たちがしている機能やスコープの現在の所有者への参照です
あなたがここでより多くの情報を見つけることができます。JavaScriptでhttp://www.quirksmode.org/js/this.html
これは常に機能の「所有者」を指し、私たちは、関数がメソッドであることをオブジェクトに対して実行しています。
詳細については、以下のリンクを確認してください。
http://www.quirksmode.org/js/this.html
は大まかに言えば、それはあなたが機能を呼び出す際に、ドットの左側にあるものを表す:
// 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)
作成者、Brendan Eich自身から取り出してください。 Alan Stormの説明へのリンクはhttp://www.aminutewithbrendan.com/pages/20110303 –