我正在阅读一本 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,这可能取决于它如何被调用
添加回答
举报
0/150
提交
取消
