同步async中this的不可替代问题

var that = this
(async () => {
    let result = await ...
    that.data2 = result.data;
})()

报错:this is not a function

反之:不替换-则程序运行正常

(async () => {
    let result = await ...
    this.data2 = result.data;
})()

虽然我知道=>函数可以让内部this等于外部this,但是事先在外部用that做一个替换,再来使用,这种保险做法,反而不能用,不是很奇怪吗?
阅读 3.3k
1 个回答

var that = this后面加个分号就行了。这是不写分号的风格下必须加分号的一种情况。
被解析为了:

var that = this(xxxxx)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题