箭头函数,要注意一点其本身不指定作用域;
Test() { let that = this; this.data.name = "安"; let inner = { func: (peram) = >{ this.name = "旭" }, func1: function() { this.name = "安旭" } } inner.func(); inner.func1(); console.log("~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~", this.name) // 输出: ~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~ 旭 }1、为什么会输出 ‘ 旭 ’
因为 ES6 中的箭头函数,不指定作用域,他的作用域就是上一级(一级一级的往上找)的作用域;
而function(){}, 创建自己的作用域;
2、建议使用赋值 that 吗?
因人而异,一种情况就是,在 () => {} 存在过多时,如果不使用赋值 that,担心会迷;
3、是否要用箭头函数全部替代 function函数?
在需要闭合环境下,不适用箭头函数,而是使用 function 函数;
多交流。。。
文章来源: ES6箭头函数 - 使用说明与注意事项