美文网首页
箭头函数

箭头函数

作者: keknei | 来源:发表于2017-07-25 23:00 被阅读3次

    匿名函数可以用箭头函数来写

    {
            //没有参数的情况下,得加上小括号
            setTimeout(()=>console.log(1),100);//1
            //有一个参数的情况下,可以省略小括号
            let f=x=>x;
            console.log(f(2));//2
            //大于一个参数情况下要加上小括号
            let name=(x,y)=>x+y;
            console.log(name(2,3));//5
            //如果箭头函数里只是一条语句,可以省略大括号,并且自动加上return
    
    }
    
    {
            //如果箭头函数里大于一条语句,就跟平时写的函数一样,
            let a;
            let show = x => {
                a=x;
                console.log(a);//3
                return a;
            };
            console.log(show(3));//3
    }
    
    {
            //如果需求只要return一个json对象,并且是一条语句,那么需要加上小括号
            let f=(x,y)=>({x:x,y:y});
            console.log(f(2,3));
    }
    

    使用箭头函数需要注意的几点

    • 1 箭头函数没有自己的this,用的是上级的this,这在回调函数当中非常有用,因为箭头函数没有自己的this,所以bind方法无效,内部的this指向外部的this
    {
            let a=0;
            let json={
                a:9,
                b:function (){
                    setTimeout(()=>{
                        console.log(this.a);//9
                    },100);
                }
            }
            json.b();
    }
    
    {
            let f=()=>this;
            console.log(f.call({a:3}));//window
    }
    
    • 2 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
    {
            let json={
                a:2,
                b:()=>{
                    console.log(arguments);
                }
            };
            //json.b(1,2,3);// arguments is not defined
    }
    

    用rest代替arguments

    {
            let json={
                a:2,
                b:(...arr)=>{
                    console.log(arr);
                }
            };
            json.b(1,2,3);// [1, 2, 3]
    }
    
    • 3因为箭头函数没有自己的this,所以不能使用构造函数,否则会报错

    </br>
    箭头函数就介绍这么多了,希望能帮助大家更好的初步了解,想看更详细的资料请狠狠的点击我
    </br>
    </br>

    相关文章

      网友评论

          本文标题:箭头函数

          本文链接:https://www.haomeiwen.com/subject/znggkxtx.html