每日一题- javascript-箭头函数this

55 阅读1分钟
var a = 10
var obj = {
  a: 20,
  say: () => {
    console.log(this.a)
  }
}
obj.say() 

var anotherObj = { a: 30 } 
obj.say.apply(anotherObj) 

10 10

  1. say是一个箭头函数,作用域是声明它的上下文,obj对象声明的环境是window,所以say在一开始声明的时候,内部this已经被固定是window了,
  2. 箭头函数,没有属于自己的this(是继承来的),而是始终指向声明它的上下文,即使是使用apply、call、bind也无法更改。