参考https://blog.csdn.net/Qian_mos/article/details/84786502
https://blog.csdn.net/qq_42292831/article/details/119007403
- 匿名函数A作为函数getNameFunc 返回值时,匿名函数A中this指向(输出为 The Window)
var name = "The Window";
var object = {
name : "My Object",
//var that=this; //可以更改this指向,使之指向当前的object对象
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()()); // 输出为 The Window
- 对比1:一般情况(输出为 My Object)
var name = "The Window";
var object = {
name : "My Object",
//var that=this; //可以更改this指向,使之指向当前的object对象
getNameFunc : function(){
return this.name
}
};
alert(object.getNameFunc()); // 输出为 My Object
- 对比2:匿名函数A作为函数参数时,函数A中this的指向
function Person() {
console.log(this);//指向Person对象person
setInterval(function fun() {
// 在非严格模式下,fun() 函数的 this 指向 window 对象
console.log(this);//指向Window对象
}, 1000);
}
var person = new Person();