为了账号安全,请及时绑定邮箱和手机立即绑定

箭头函数如何在其范围内向上工作,直到找到一个值?

箭头函数如何在其范围内向上工作,直到找到一个值?

qq_笑_17 2021-10-07 10:52:55
我正在阅读一本 javascript 书,下面是作者描述的示例:let myObject = {    greeting: "Hi, there",    getWriter() {        return (message) => console.log(`${this.greeting}, ${message}`);    }}myObject.getWriter()("It is raining today");当调用 getWriter 返回的箭头函数时,它会在其范围内向上工作,直到找到 this 的值。因此,调用 getWriter 函数的方式决定了箭头函数的 this 值。我有点明白这个想法,但对细节感到困惑,所以getWriter()首先被调用,然后箭头函数被调用,但是箭头函数如何工作到它的范围以确定 this 值是myObject什么?我的意思是什么时候getWriter()被调用,这个函数的作用域在这个函数完成时结束,箭头函数不应该知道它自己是从 getWriter 函数返回的吗?
查看完整描述

2 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

考虑到箭头函数是this在评估时捕获词法值的表达式,以供稍后调用时使用,这可能会有所帮助。

myObject.getWriter()("It is raining today");

调用getwriter作为方法myObject并通过这样做导致在执行期间getwriter具有 this 值myObject

(message) => console.log(`${this.greeting}, ${message}`)

getwriter评估该表达(每一次getwriter被调用)它产生其使用中的箭头函数对象this由看出值getwriter

因此,该函数返回由getwriter用途this的价值呼唤getwriter,这可能取决于它如何被调用


查看完整回答
反对 回复 2021-10-07
  • 2 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信