研究了一上午发现setTimeout的使用jquery的$(this)总是赋值不上,后来打印了一下,发现原来setTimeout里使用this指向的是window。
var testThis={
a:function(){
console.log(this); //{a: ƒ, b: ƒ}
},
b:function(){
setTimeout(function(){
console.log(this); //window对象
},1000)
}
}
不在setTimeout里的this的指向符合预期:
不在setTimeout里的this的指向不符合预期,指向了window对象,这个要特别注意一下:
更多参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/setTimeout