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()