之前看es6新特性时,有个印象关于 ES6箭头函数 this指向问题的特殊性。然而并没谨记在心o(╥﹏╥)o
今儿帮忙解决问题,调入此坑将近两小时不能自拔😭
最开始的现象只是赋值无法成功,追查到时因为无法进入组件监听所以没有update,之后发现this.data 要赋值的对象是普通的js对象,而非vue对象。
而后追查到时this
指向问题。之后追查到在发request请求then
的回调结果中this
的指向变成了Window
对象,而非vue
对象。然后又傻傻地追查了好几种写法的区别,由于这个小姐姐写法稍稍不规范,试了几种不同写法,还是卡在发请求回调结果的this
指向问题上。
最后,拉出代码文件对比,猛然想起ES6箭头函数 this
指向的特殊性o(╥﹏╥)o。我习惯性地用箭头函数,都没留意这位小姐姐用的是function()
方式接受回调结果。
学艺不精,才这么后知后觉o(╥﹏╥)o
再好好学习一遍:
使用注意点
箭头函数有几个使用注意点。
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。