原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处
什么是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]