向各位请教一个关于 setTimeout 的 js 语法基础问题(微信小程序)

2021-11-16 00:33:30 +08:00
 yustation

像这样的两次 setTimeout ,我不理解的是第二次为什么回调函数明明不是箭头函数,为什么 this 反而“正确”地指向了我们所需要的 this 。在浏览器控制台或是 node 上等价的写法的话,似乎又两次调用 setTimeout 都打印出 undefined (这就符合我对 this 的认知了),但为什么在小程序上又会这样表现呢?是不是同小程序的运行环境有关呢?向各位前辈诚恳请教。

835 次点击
所在节点    微信
6 条回复
lalalaqwer
2021-11-16 00:52:33 +08:00
这个应该是小程序的框架对 page 中配置的函数进行了 this 绑定吧
Cbdy
2021-11-16 08:45:28 +08:00
因为微信小程序吧
yustation
2021-11-16 10:56:40 +08:00
@lalalaqwer 这样啊,了解了,感谢指教
yustation
2021-11-16 10:56:56 +08:00
@Cbdy 懂了,谢谢你
sjhhjx0122
2021-11-16 13:47:06 +08:00
要理解魔法~ ,vue option api 也是这样的内部帮你做了绑定
yustation
2021-11-16 14:33:38 +08:00
@sjhhjx0122 哈哈,基础不牢,慢慢学习中

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/815653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX