原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處
什么是this,this就是這個,其實在javascript中this挺迷惑人的,誰知道特么this到哪一個了,那么,上代碼
var a=1;
var b={
a:0,
c:(function(){
this.a=2;
a=7;
console.log("this.a"+this.a);
console.log("第一層"+a);
return function(){
console.log("第二層"+a);
return this.a=4;
}
})()
};
console.log("全局"+a);
console.log("返回值"+b.c());
直接復制了控制臺輸出
[Web瀏覽器] "this.a2" /HelloHBuilder/index.html (22)
[Web瀏覽器] "第一層7" /HelloHBuilder/index.html (23)
[Web瀏覽器] "全局7" /HelloHBuilder/index.html (30)
[Web瀏覽器] "第二層7" /HelloHBuilder/index.html (25)
[Web瀏覽器] "返回值4" /HelloHBuilder/index.html (31)
通過對比我們可以發現,一個函數內,使用var的變量是局部變量,不使用var
的變量則會從上一級作用域里獲取,而this
只能獲取到當前作用域內的相關變量
所以this
又相當于指向的是當前對象
通過對象來調用函數,this
指向了對象,如果把對象的函數變成變量,這個變量屬于全局,this
指向了window
如
function b(){
return this;
}
var a=b();
console.log(a)//[object Window]