window.globalFns = {
loginReturn : function(res){
this.statusChangeCallBack(res);//这里的this是指向下面的statusChangeCallBack方法吗
},
statusChangeCallBack : function(res){
}
}
window.globalFns = {
loginReturn : function(res){
this.statusChangeCallBack(res);//这里的this是指向下面的statusChangeCallBack方法吗
},
statusChangeCallBack : function(res){
}
}
globalFns.loginReturn() // this =>> globalFns
const fn = globalFns.loginReturn
fn() // this =>> window || undefined
还有 bind call 等情况
总的来说就是
在对象中的this不一定是指向对象本身吗
只有执行的时候才能决定this指向谁。
globalFns.loginReturn(); // this -> globalFns
var g = globalFns.loginReturn;
g();//this -> window
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
一般函数中的this遵循这样一个原则:
所以你这里如果使用
globalFns.loginReturn()
,this指向globalFns
;如果你用一个变量给他存起来了
如果你将它赋给一个对象属性,使用新的对象来调用,
this
指向新对象:此外call, bind, apply都可以改变this。