请教一个javascript中和import,export有关的this指向问题?

发布于 2022-09-30 23:07:20 字数 417 浏览 16 评论 0

现在我有一个1.js文件,其中只有一个对象a:
image.png

然后在名为test2.vue的文件中import这个js文件,并在mounted阶段把methods中的test方法赋给属性a3,并执行a2和a3:
image.png

然后打开浏览器进入test2这个页面会发现a2和a3打印出了不同的this,一个指向a一个指向vue:
image.png

在单个文件中的this指向搞的懂,但是涉及到export,import后就有点不太理解this到底怎么指了。。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终止放荡 2022-10-07 23:07:20

关于 this 指向的问题,可以看这篇:JavaScript 的 this 指向问题深度解析

总结起来就是,只要没有特别绑定 this,那 this 就指向调用这个函数的对象(箭头函数不是这样呵)

但在 Vue 中,注意到,methods 中定义的函数,从代码表面来看,讲道理是不能挂在当前组件对象上的,要调用也该 this.methods.test() 这么调用才行啊,为什么 this.test() 就可以呢?—— 既然按常理解释不通,那就说明 methods 中的方法是在某个阶段强行绑定了当前 Vue 组件实例作为 this 的。既然绑定了,那 js1.a3() 执行时的 this 指向 Vue 组件实例也就不难理解了。

所以……其实跟 import/export 没半毛钱关系。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文