![ef5da6566d0fdeba5d5414e20f97a68b.png](https://i-blog.csdnimg.cn/blog_migrate/7caf0a1fa8578ea4cd2885ff9e671726.jpeg)
箭头函数简化了原生写法,让代码更加简洁,来看一下基础的写法
箭头函数写法
基础写法
![b77fe535eca20a6a073ef2776b4d98ab.png](https://i-blog.csdnimg.cn/blog_migrate/3f277bf7086ce64d2a5a8f71c1a76f62.png)
函数的写法也就是比原生的写法少了function多了箭头,所以这可能就是箭头函数的由来吧!
简化写法
1) 当形参有且只有一个的时候,可以省略小括号
![0e820f6eb89a553d63e363e9db852f8f.png](https://i-blog.csdnimg.cn/blog_migrate/812ff3c985d11d2e68643aa870ec19cf.png)
2)当代码体只有一条语句的时候可以省略花括号
注意:此时return必须省略,而且语句的执行结果就是函数的返回值
![0d2c64df72d0f32c0726d8ef0dd4809d.png](https://i-blog.csdnimg.cn/blog_migrate/15be8da07f961d073e583d0cc515a24c.png)
使用箭头函数注意事项
1.不能作为构造实例化对象
![11cc6f08db90e0a2477be9894ddffc94.png](https://i-blog.csdnimg.cn/blog_migrate/a8d5799264bad184524a7582b10fcf5c.png)
此时会报错
![7535e94164d56fd98775e9e28318fdb0.png](https://i-blog.csdnimg.cn/blog_migrate/e067ad606da1764c708f9aa1ad2c108a.png)
2.不能使用arguments变量
![0327dd6e921d172bbf03c6d6231de7c8.png](https://i-blog.csdnimg.cn/blog_migrate/877383df162d7c37cfad603873ca802c.png)
此时会显示arguments未定义
![f6f5c90d4e99798528cdefc19d0c398c.png](https://i-blog.csdnimg.cn/blog_migrate/8b392652b0ef873aaeb8e3bd29419f8b.png)
this相关问题
可以看一下对this指向的介绍全面解析this指向问题,更方便理解。
箭头函数不适用this的四种标准规则,而是根据外层(函数或全局)作用域来决定this的
this是静态的。this始终指向函数声明时所在作用域下的this的值。
![4a7ab2f6e0c863cb8fe175f5a6df0d78.png](https://i-blog.csdnimg.cn/blog_migrate/29b2697f217403b7ea2c6c6f62af1afb.jpeg)
我们直接调用的话,this指向window,则会打印angula,而使用call对this进行绑定之后,我们会发现,普通的写法this发生了改变,打印obj name,但是箭头函数的this并未发生改变,依旧打印angula。
来进行一个小实践
1.实现一个小功能,点击div之后,将div块的背景颜色设置为red
![e8625b625581d4a0f1997e21008a9b40.png](https://i-blog.csdnimg.cn/blog_migrate/7b0f096021c8b7fecb5588058f5267f8.jpeg)
这是我们原本的写法,不使用箭头函数,这时候需要保存一下this,不然直接使用this会指向window。
箭头函数写法
![88f71ad5e8d37537fc605d1d616744bd.png](https://i-blog.csdnimg.cn/blog_migrate/7c00659cfaf417d4c836fb6db7fea7e2.jpeg)
这时候就不需要再对this进行保存了。这时候是不是感觉简化了好多呢?
2.从数组中返会偶数的元素
![17485f3c477c4a56dad7df1a2b2f0b06.png](https://i-blog.csdnimg.cn/blog_migrate/7a11e770d4375d1ef5c47c41735926c2.png)
是不是感觉这么简单的东西写起来要这么多东西,那么来看一下箭头函数的写法
![9e2979e08bfc9170d028f822ed0a21c7.png](https://i-blog.csdnimg.cn/blog_migrate/ae707aefc16aba4aae93683765479abc.png)
这时候会简单一点点,那么我们来看一下箭头函数简化之后的写法
![a1a35794fb05a41526b1a2fe15a492f6.png](https://i-blog.csdnimg.cn/blog_migrate/12eae7a8a113f42b1837b00b570501c5.png)
这时候是不是感觉一切努力都不会白费,箭头函数可以使得代码变得更加的简洁呢?
总结:
箭头函数适合与this无关的回调,如定时器,数组的方法回调
不适合与this有关的回调,如事件回调,对象的方法,当然不适合并不是说不能使用箭头函数
————————————————
版权声明:本文为CSDN博主「web_angula」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
ES6之箭头函数_前端~米老鼠的博客-CSDN博客blog.csdn.net![7af936f04cb2f314d5f8a21d07a4c644.png](https://i-blog.csdnimg.cn/blog_migrate/187739e9272d295f5c54fa0517ef8da2.jpeg)