ES 6矢印関数(arrow function)

1841 ワード

定例文:次の文字の内容はすべてUnderstanding ECMAScript 6から来て、作者はNichollas C.Zakasで、つまり有名なProfessional JavaScript for Web Developersの作者です.彼の文章のスタイルがとても好きなので、Understanding ECMAScript 6を見てから自分でブログを書いて整理してみます.簡単に翻訳して固めるのと同じです.Nichollasのオリジナルに感謝します.私は小人で、巨人の肩に立っています.だから見えない景色を見ました.原文のリンク:https://leanpub.com/understan...
1:矢印関数とは何ですか?矢印関数は、名前の通り矢印(=>で定義された関数で、キーワード「function」は使用されません.
let sum = (a, b)=> {return a + b;}
効果は以下と同じです
var sum = function(a, b){return a + b;} 
しかし、上の二つの機能にはいろいろな違いがあります.後の第三点について説明します.
2:矢印関数の複数の定義方式矢印関数の定義形式は多くの種類があります.
1:どんな状況でも大丈夫です.
let sum = (a, b)=>{return a + b;}

      ,      。

2:パラメータタイプは一つだけです.
let self = num1 => {return num1;}

               :   ()    .               。

3:パラメータなしタイプ
let functionA = ()=> {return 'hehe';}

      ,    '()'。
4:二つのパラメータと以上のタイプ

let sum = (a, b) => {return a + b;}

            ,     ‘()’      。
5:なしリターン&なし{}
let sum = (a, b) => a + b;

       return    {},  `  `     4   
6:returnがありません&あります{}
let sum = (a, b)=> {a + b;}

        5 ,     `'a+b'`             ,         ,     `‘undefined’`
7:returnがありますか&ありません{}
let sum = (a, b)=> return a + b;

    ,          syntaxError.
上記の5、6、7点は関数の方法体の部分に対して、関数のパラメータがいくつかであるにもかかわらず、結果に違いがありません.同様に、2番目、3番目、4点は関数のパラメータ部分に対して、関数の方法体に関係なく、結果には影響がありません.
3:矢印関数と一般的な非矢印関数の違い:
1:   this, super, arguments new.target  。                            
2:     new   。            。
3:   [prototype]  。    new      ,  prototype      。
4:     this  。this                     。
5:   arguments。                        。
6:        。                    。