function foo(){
setTimeout(()=>{
console.log("is:",this.id);//42
},100)
}
var id = 21;
foo.call({id:42})
js中函数的this是动态的,要看运行时是谁调用的,在这里面
foo内部的this指向匿名对象
setTimeout是全局调用的
箭头函数没有this 指向相邻的外层 即为setTimeout的this
所以为什么不是21 打印结果为什么是42???
求大神详细解释?
摇曳的蔷薇
相关分类