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

现在我有一个1.js文件,其中只有一个对象a:
请教一个javascript中和import,export有关的this指向问题?

然后在名为test2.vue的文件中import这个js文件,并在mounted阶段把methods中的test方法赋给属性a3,并执行a2和a3:
请教一个javascript中和import,export有关的this指向问题?

然后打开浏览器进入test2这个页面会发现a2和a3打印出了不同的this,一个指向a一个指向vue:
请教一个javascript中和import,export有关的this指向问题?

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


回答:

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

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

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

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

以上是 请教一个javascript中和import,export有关的this指向问题? 的全部内容, 来源链接: utcz.com/p/936182.html

回到顶部