我试图理解为什么我不能访问匿名函数的对象。
一个例子:
let Run=(distance)=>{
console.log(`Mr ${this.name} is coming to the end of a very long road, After more than ${distance}.`)
}
let Runner = {name:'Forest Gump',Run}
Runner.Run('15,000 miles')
此返回:
一个空对象:
Mr is coming to the end of a very long road, After more than 15,000 miles.
但是当我将功能更改为:
function Run(distance){
console.log(`Mr ${this.name} run ${distance}`)}
效果很好
有人可以向我解释为什么在执行匿名函数时我们无法访问该对象吗?
谢谢。
答案 0 :(得分:1)
这是因为箭头功能没有自己的this
。箭头函数中的this
是基于其词法作用域(即,基于箭头函数的包围方式)而不是基于函数的调用方式来确定的。
MDN正在提供有关箭头功能的详细文档。