在撸代码的时候遇见这个问题了。各位大神请帮我看下。谢谢了。
(function(){
var name = 'Tom';
console.log(this);//window--------------------------(1)
console.log(this.name);//空-------------------------(2)
})();
var age = "22"
console.log(this);//window------------------------------(3)
console.log(this.age);//22------------------------------(4)
为什么(2)这个地方会输出是空?而不是Tom
为什么(4)这个地方会输出22?
打印出来的this都是window。这两个this有什么不同么?
为什么出现这个情况?
麻烦各位大神指点下。前端小白,感激不尽。
function中的this指向的是调用该function的对象,比如:
匿名函数调用的对象是window,所以内部的this指向window对象,(2)中this.name相当于window.name,window有个name属性默认是空字符串,所以输出'',(4)中this.age相当于window.age,所以是22