サーチ…


前書き

ノード6がノードの新しいLTSバージョンになります。新しいES6標準の導入により、言語に対するいくつかの改善が見られます。導入された新機能のいくつかを紹介し、実装方法の例を紹介します。

デフォルト関数のパラメータ

function addTwo(a, b = 2) {
    return a + b;
}

addTwo(3) // Returns the result 5

既定の関数パラメータを追加することで、引数をオプションにして、デフォルト値をあなたが選んだ値にすることができます。

残りのパラメータ

function argumentLength(...args) {
    return args.length;
}

argumentLength(5) // returns 1
argumentLength(5, 3) //returns 2
argumentLength(5, 3, 6) //returns 3

使用して、関数の最後の引数巻頭によって...関数に渡されるすべての引数を配列として読み込まれます。この例では、複数の引数を渡し、それらの引数から作成された配列の長さを取得します。

スプレッドオペレータ

function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction(...args);

拡張構文では、複数の引数(関数呼び出しの場合)または複数の要素(配列リテラルの場合)または複数の変数が必要な場所で式を展開できます。残りのパラメータのように、あなたの配列を単に前置きします...

矢印関数

Arrow関数は、ECMAScript 6で関数を定義する新しい方法です。

// traditional way of declaring and defining function
var sum = function(a,b)
{
    return a+b;
}

// Arrow Function
let sum = (a, b)=> a+b;

//Function defination using multiple lines 
let checkIfEven = (a) => {
    if( a % 2 == 0 )
        return true;
    else
        return false;
}

矢印機能の「this」

これは、関数でその機能を呼び出すために使用されるインスタンス・オブジェクトを指すが、これは 、矢印関数の矢印関数が定義された関数のに等しいです。

図を使って理解しようこの矢印関数のレキシカルスコープ

例を使って理解する。

var normalFn = function(){
   console.log(this) // refers to global/window object.
}

var arrowFn = () => console.log(this); // refers to window or global object as function is defined in scope of global/window object
    
var service = {

    constructorFn : function(){

        console.log(this); //  refers to service as service object used to call method.

        var nestedFn = function(){
            console.log(this); // refers window or global object because no instance object was used to call this method.
        }
        nestedFn();
    },
    
    arrowFn : function(){
        console.log(this); // refers to service as service object was used to call method.
        let fn = () => console.log(this); // refers to service object as arrow function defined in function which is called using instance object.
        fn();
    } 
}

// calling defined functions
constructorFn();
arrowFn();
service.constructorFn();
service.arrowFn();

矢印関数では、 これは、関数lexical scopeであり、矢印関数が定義されている関数のスコープです。
最初の例は、関数を定義する伝統的な方法であり、したがって、 これグローバル/ウィンドウオブジェクトを参照しています。
第2の例では、これは矢印関数内で使用され、したがって、これは 、(Windowsまたはグローバルオブジェクトである)に定義される範囲を指します。 3番目の例では、 これは、サービスオブジェクトが関数を呼び出すために使用されるため、サービスオブジェクトです。
4番目の例では、arrow関数はスコープがserviceである関数から定義され、呼び出されます。したがってserviceオブジェクトを出力ます。

注: - グローバルオブジェクトはNode.Jsに、Windowsオブジェクトはブラウザに表示されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow