ES6:箭头函数

165 阅读1分钟

箭头函数 =>

1.使用方法
箭头函数相当于匿名函数,并且简化了函数定义。
//箭头函数
var fn = (num1, num2) => num1 + num2
//等同于
var fn = function(num1, num2){
    return num1 + num2;
}
箭头函数有两种格式:
1) 只包含一个表达式,连{ ... }return都省略掉了(如上代码)。
2) 包含多条语句,不能省略{ ... }return(如下代码)。
var fn = (x, y) =>  {
    if (x > y) {
        return x * y;
    }
    else {
        return y - x;
    }
}
返回对象要加( ... ),因为箭头函数多行语句是要加{ ... }的,而对象本身就有{ ... }.
var fn = () => ({name : "kiwi", age : 27})
2.注意事项
2.1 ) 箭头函数没有自己的this,所以内部的this就是外层代码块的this
var age = 'window 27';
var obj = {
    age : 27,
    getAge : () => this.age
}
console.log(obj.getAge());
//window 27
因为箭头函数没有自己的this,也就不能用call()、apply()、bind()这些方法去改变this的指向。
2.2 ) 箭头函数没有arguments
3.嵌套的箭头函数
var fn = str => () => console.log(str.split(''))
//等同于
function fn(str){
    return function(){
        console.log(str.split(''))
    }
}
fn('123')()