请教一个javascript中和import,export有关的this指向问题?
现在我有一个1.js文件,其中只有一个对象a:
然后在名为test2.vue的文件中import这个js文件,并在mounted阶段把methods中的test方法赋给属性a3,并执行a2和a3:
然后打开浏览器进入test2这个页面会发现a2和a3打印出了不同的this,一个指向a一个指向vue:
在单个文件中的this指向搞的懂,但是涉及到export,import后就有点不太理解this到底怎么指了。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
关于
this
指向的问题,可以看这篇:JavaScript 的 this 指向问题深度解析总结起来就是,只要没有特别绑定
this
,那this
就指向调用这个函数的对象(箭头函数不是这样呵)但在 Vue 中,注意到,
methods
中定义的函数,从代码表面来看,讲道理是不能挂在当前组件对象上的,要调用也该this.methods.test()
这么调用才行啊,为什么this.test()
就可以呢?—— 既然按常理解释不通,那就说明methods
中的方法是在某个阶段强行绑定了当前 Vue 组件实例作为this
的。既然绑定了,那js1.a3()
执行时的this
指向 Vue 组件实例也就不难理解了。所以……其实跟 import/export 没半毛钱关系。