ECMAScript6之箭头函数

二〇一五年八月17日,ECMAScript 6发表正式版本,即ECMAScript 2015

函数作为js语言中的一等人民。自然Es6中出产的箭头函数(=>)也是引人注目标。那大家接下去看下传说中的“箭头函数”和function函数有何两样呢~

1.this的针对性,函数内置 this
的值,取决于箭头函数定义的上下文环境,而非箭头函数执行的上下文环境。

2.this不可变,差异于function函数的针对性(点我);
箭头函数的this的对准是画虎类犬的,能够清楚为常量一样。

3.从未有过arguments对象。只能够通过rest语法举行传值。

4.new 无法用,箭头函数不可以利用 new 关键字实例化对象,不然会时有暴发报错。

箭头函数写法:

<script>
    //普通函数写法
    function fn(){
        console.log(this)
    }
    //箭头函数写法
    let fn1=()=>console.log(this)
</script>

箭头函数传参

let fn = (...arg) => {
     //console.log(arguments); // 实参的集合,类数组
        console.log(arg);
}
fn(1,2,3,4)//console.log(arg) 1,2,3,4

箭头函数this的对准

<script>
    function fn(){
        console.log(this)//指向 对象obj
    }
let fn1=()=>console.log(this) //指向window
    let obj ={
        fn,
        fn1
    }
    obj.fn() //普通函数通过对象调用 指向对象
    obj.fn1()//箭头函数不论怎么调用this就是指向定义时上下文的this
</script>