为什么箭头函数的 this 无法推断呢

来源:3-19 函数 - this+ 重载

小学生6年级

2019-04-28

图片描述

箭头函数的 this 来源于语法定义时,静态的应该是可以推断的啊。

写回答

1回答

ustbhuangyi

2019-04-28

因为这里箭头函数中的 this 只是来自 deck.createCardPiack,而不是 deck。
我们通过如下方式调用

let cardPicker = deck.createCardPicker()
let pickedCard = cardPicker()

这个时候 createCardPicker 中的 this 就是 deck 对象,所以你可以在里面访问到 this.suits 是一个数组。

如果这样使用:

let cardPicker = deck.createCardPicker.cal({})
let pickedCard = cardPicker()

这个时候 createCardPicker 中的 this 就是 {} 了,这样访问 this.suits 就是 undefined 了。

0
2
慕莱坞0998854
老师,我现在用的TS版本是3.9.4 好像能正确推断了
2020-07-01
共2条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程