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的方法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容