ES6 箭头函数的this使用
什么时候使用箭头函数
setTimeout(function () { console.log(this) } , 1000); setTimeout(() => { console.log(this)//这里this找的是window的this }, 1000);
结论:箭头函数没有this,这里this引用的是最近作用域(aaa函数里的this)的this。
const obj = { aaa(){ setTimeout(function () { console.log(this)//window }); setTimeout(() => { console.log(this)//obj }); } } obj.aaa()
上述中第一个是window对象的this,第二个箭头函数的this是obj的。
const obj = { aaa() { setTimeout(function () { setTimeout(function () { console.log(this) //window }) setTimeout(() => { console.log(this) //window }) }) setTimeout(() => { setTimeout(function () { console.log(this) //window }) setTimeout(() => { console.log(this) //obj }) }) } } obj.aaa()