为什么输出为空
javascript吧
全部回复
仅看楼主
level 2
var orz={
a1:5,
frb:function(){
setTimeout(function(){alert(this.a1);},1000);
}
};
orz.frb();//undefined ???
//上面的代码输出为空,下面的却可以
var orz2=function(){
var a1=6;
setTimeout(function(){alert(a1);},1000);
}
orz2();//6
2021年07月30日 07点07分 1
level 1
因为这里的this是指向windows,所以是undefined
2021年07月30日 08点07分 2
level 12
var orz = {
a1: 5,
frb: function() {
setTimeout(() => alert(this.a1),1000); // 就是 this 指向问题
}
};
orz.frb();
2021年07月30日 08点07分 3
level 1
定时器延时器的this指向好像是是windows,而window里没有a1这个属性
2021年08月10日 19点08分 4
level 3
null是空,undefined是未定义,这俩不一样的
2021年08月11日 12点08分 5
1