一. 箭头函数语法:
1. 没有参数时
- var demo = function(){
- }
相当于:
- var demo = () => {
- }
2. 只有一个参数时
- var demo = function(a){
- return a;
- }
相当于:
var demo = a => a
3. 多个参数需要用到小括号, 参数间逗号间隔
- var demo = function(a,b){
- return a+b;
- }
相当于:
var demo = (a,b) => a+b
4 . 函数体多条语句需要用到大括号
- var demo = function(a,b){
- if(a>b){
- return a-b;
- } else{
- return b-a;
- }
- }
相当于:
- var demo = (a,b) =>{
- if(a>b){
- return a-b;
- } else{
- return b-a;
- }
- }
5 . 返回对象时需要用小括号包起来, 因为大括号被占用解释为代码块了
- var demo = (name,age) =>{
- return ({
- name: name,
- age: age
- })
- }
6 . 作为数组排序回调
- var arr = [1, 9 , 2, 4, 3, 8].sort((a, b) => {
- if (a - b> 0 ) {
- return 1
- } else {
- return -1
- }
- })
注意:
箭头函数的确与传统函数有不同之处, 但仍存在共同的特点.
例如:
1. 对箭头函数进行 typeof 操作会返回 "function".
2. 箭头函数仍是 Function 的实例, 故而 instanceof 的执行方式与传统函数一致.
3.call/apply/bind 方法仍适用于箭头函数, 但就算调用这些方法扩充当前作用域, this 也依旧不会变化.
4. 箭头函数与传统函数最大的不同之处在, 禁用 new 操作
来源: http://www.webhek.com/post/javascript-arrow-function.html