es6箭头函数

es5:

var sum = function (a,b){

        return a+b;

}

es6箭头函数:

var sum = (a,b)=>a+b



es5:

 var sum = function (a){

    return a;

}

es6:

var sum = a=>a;



es5 : 

var objs = function (){

    return {name:"zhangsan",age:"12"}

};

es6

var objs = ()=>({name:"zhangsan",age:"12"});


回调函数的用处

es5

[1,2,3].map(function (x){

    return x*x;

})

es6

[1,2,3].map(x=>x*x);



函数中的this,是绑定时所在的作用域,而不是指向运行时所在的作用域

function timer (){

this.s1 = 0;

this.s2 = 0;

   setInterval(()=>{

        this.s1++;

 },1000);

}

var n1 = new Timer();

setTimeout(()=>{

    console.log(n1.s1+","+n1.s2);

},3000);

//这个时候我们会发现n1.s1发生了改变,因为this指向的是绑定时的作用域而不是运行时所在的作用域。


function foo (){

setTimeout(()=>{

    console.log("args:arguments);

},1000)

foo(1,2,3,4,5);

//箭头函数内部变量arguments的问题,其实就是函数中的arguments的变量,

另外由于箭头函数没有自己的this,所以不能使用call(),apply的方法。

你可能感兴趣的:(es6箭头函数)