Vue中使用Promise获取数据this指向问题
假设methods
中有个获取数据的方法getData
接收返回的数据参数为resultData
mounted
里的写法
// 外面这个this
this.getData().then(response => {
let result = response.data
// 里面这个this
this.resultData = result
})
我的问题是 外面这个this 和 里面这个this 指向到底是否一样
调试的时候有时候then
方法里面的this
是undefined
,有时候又是和外面的this指向一致,都是vuecomponent
。而且即使里面的this
是undefined
,页面中也会显示resultData
的值
箭头函数的内部的this是词法作用域,由上下文决定,那理论上里面的this和外面的this指向应该是一致的?可是为什么又会有不同的情况发生呢?
如果您知道答案,期待您的解答~ 感谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
按照你的描述,我想到一种可能性,有可能外层的
this
改变,造成了箭头函数里面的this
跟着改变你可以用下面的语句测试看看
用的是浏览器里面的断点? 浏览器里面打断点调试可能会出现这种现象,这种现象并不代表代码有问题。
this是函数产生的, 定义一个函数就会产生作用域和this.
你已经知道箭头函数不产生this, 所以你代码里的外面和里面this指向相同.
另外, 如果你说有时候this是undefined, 那么仔细检查下代码, 这个情况是不会发生的, 只有出现
function foo() {}
或者是es6的写法foo () {}
才会产生新的this