ES 6-関数拡張

1310 ワード

関数の新規プロパティ
関数のデフォルト値、restパラメータ、拡張演算子、矢印関数、thisバインド、末尾呼び出し
関数パラメータのデフォルト値
{
    //       
    function test(x,y='  '){
        console.log(x,y)
    }
    test("wode")
    //wode   
    test("wode",'tahao')
    //wode tahao
    //                  ,    c       
}
{
    let x='test';
    function test2(x,y=x){
        console.log(x,y)
    }
    test2("hi")
    //hi hi
    //          ,        
}

restパラメータ
いくつかのパラメータがあるかどうか分からない場合は...argは、パラメータを配列に変換し、restパラメータの後に他のパラメータを持つことはできません.
{
    //rest  
    function test3(...arg){
        for(let v of arg){
            console.log(v)
        }
    }
    test3(1,2,3,4,5,'a')
    //1,2,3,4,5,a
}

矢印関数
{
    //arrow    ,v   ,v*2    
    let arrow = v => v*2;
    console.log(arrow(3))
    //6
    let arrow2=()=>5;
    console.log(arrow2());
    //5
}

矢印関数thisの指向については、矢印関数でthisが最外層関数を指すthisは、文法の役割ドメインであり、コンテキストによって決定されるので、従来のvar that=thisは使用されなくなります.
エンドコール
テールコールの概念は非常に簡単で、一言ではっきり言えます.ある関数の最後のステップが別の関数を呼び出すことです.パフォーマンスを向上させることができます.
{
    function tail(x){
        console.log(x)
    }
    function fx(x) {
        return tail(x)//   
    }
    fx(123)
    //123
}