普通函数中的的this指向取决于运行该函数的作用域,而箭头函数的this是定义时就固定了。
然而在vue中有一事不明:
惊喜点击
惊喜点击1
var app=new Vue({ el:"#app", data:{
}, methods:{ onSurprise:()=>{ console.log('箭头函数的'+this)
}, onSurprise1:function(){ console.log(this)
}
}
})
分别点击控制台输出
箭头函数绑定的是window,而运行时的函数的作用域是vue
仔细想想好像也对,函数运行时是通过'app.函数名'调用的,所以onSurprise1的this指向app,而app是vue的实例。对于箭头函数,onSurprise是在全局window下定义的,所以this指向window。
作者:fenerchen
链接:https://www.jianshu.com/p/3eabf16aee10
博客探讨了在Vue环境中,this的指向问题。在普通函数中,this由调用方式决定,而在箭头函数中,this在定义时即被绑定。文章指出,当在Vue的方法中使用箭头函数时,由于箭头函数不创建自己的this上下文,导致其this指向全局window,而非Vue实例。相比之下,常规函数在Vue方法中会保持正确的this指向,即Vue实例本身。

被折叠的 条评论
为什么被折叠?



