我發現像這樣的代碼:什麼是「this.somevariable」意味着在JavaScript?
Function a(){ this.somevariable = ''; }
和其他一些像這樣的代碼:
Function a(){ var somevariable = ''; }
它們之間的區別是變量的聲明。我需要知道的this
是什麼。它與var
不同嗎?
我發現像這樣的代碼:什麼是「this.somevariable」意味着在JavaScript?
Function a(){ this.somevariable = ''; }
和其他一些像這樣的代碼:
Function a(){ var somevariable = ''; }
它們之間的區別是變量的聲明。我需要知道的this
是什麼。它與var
不同嗎?
this
是JavaScript中的關鍵字。
function test(){
this.x = 10;
}
這種情況下this
代表內部對象,只能在函數中使用。
隨着功能不同的場合,this
的值會改變。但是有一個總體原則:this
表示調用函數的對象。
案例1: 純函數調用:
這是函數的最常見的用途,屬於全球呼叫。 所以this
只是全局對象的意思。
如:
function test(){
this.m = 10;
alert(this.m);
}
test(); // there alert 10
爲了證明this
是一個全局對象:
var m = 10;
function test(){
alert(this.m);
}
test(); // 10
和:
var m = 10;
function test(){
this.m = 0;
}
test();
alert(m); // 10
案例2: 作爲調用該函數的對象。
function test(){
alert(this.m);
}
var obj = {};
obj.m = 10;
obj.n = test;
obj.n(); // 10
案例3:
作爲構造
function test(){
this.m = 10;
}
var obj = new test();
alert(obj.m); // 10
爲了表明this
是不是在這種情況下,一個全局對象:
var m = 10;
function test(){
this.m = 1;
}
var o = new test();
alert(m); //10
好的謝謝先生@aircraft –
而不是寫在JS中的第九百萬個「this」的描述,最好將OP指向SO上現有的綜合答案,或者是一個權威的網頁,比如ashttps:// developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this。你可以在評論中這樣做,而不是回答。 – 2017-09-15 04:44:03
如果你想要t o瞭解更多信息,而不是每次運行下一個小問題時發佈到SO,而您經常會得到誤導性或不完整的答案,您應該在學習新語言時做計算曆史上的其他每個人即閱讀文檔,簡介,教程和博客文章。畢竟,如果你學習意大利語,每次碰到一個你不認識的單詞,或者你會學習一本意大利語的教科書,你會在意大利的網站上發帖嗎? – 2017-09-15 04:35:40
爲了將來的參考,您不需要在您的問題中包括個人詳細信息,例如您學習語言的歷史或您的個人願望。它們無關緊要,分散注意力。說實話,沒人關心。也沒有必要在答案上留下「謝謝」意見。如果答案是有用的,那麼請立即投票。 – 2017-09-15 04:37:42