Suche…


Einführung

Der Knoten 6 wird zur neuen LTS-Version des Knotens. Durch die Einführung der neuen ES6-Standards können wir eine Reihe von Verbesserungen der Sprache feststellen. Wir werden einige der neuen Funktionen und Beispiele für deren Implementierung durchgehen.

Standardfunktionsparameter

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

addTwo(3) // Returns the result 5

Mit dem Hinzufügen von Standardfunktionsparametern können Sie nun Argumente optional machen und sie standardmäßig auf einen Wert Ihrer Wahl setzen.

Restparameter

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

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

Wenn Sie das letzte Argument Ihrer Funktion mit ... voranstellen, werden alle an die Funktion übergebenen Argumente als Array gelesen. In diesem Beispiel übergeben wir mehrere Argumente und erhalten die Länge des Arrays, das aus diesen Argumenten erstellt wird.

Spread Operator

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

Die Spread-Syntax ermöglicht die Erweiterung eines Ausdrucks an Stellen, an denen mehrere Argumente (für Funktionsaufrufe) oder mehrere Elemente (für Array-Literale) oder mehrere Variablen erwartet werden. Genau wie die Rest-Parameter geben Sie Ihrem Array einfach ein ...

Pfeilfunktionen

Die Pfeilfunktion ist die neue Art, eine Funktion in ECMAScript 6 zu definieren.

// 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" in der Pfeilfunktion

Diese Funktion bezieht sich auf die Instanz - Objekt verwendet, um diese Funktion aufzurufen , aber diese in Pfeil Funktion ist gleich dieser der Funktion , in der Pfeil Funktion definiert ist.

Verstehen wir mit Diagramm lexikalischer Umfang davon in Pfeilfunktion

Verständnis anhand von Beispielen.

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();

In der Pfeilfunktion ist dies der lexikalische Gültigkeitsbereich. Dies ist der Funktionsumfang, in dem die Pfeilfunktion definiert ist.
Das erste Beispiel ist die traditionelle Art und Weise Funktionen zu definieren und somit bezieht sich dies auf global / Fenster - Objekt.
Im zweiten Beispiel wird diese Funktion innerhalb der Pfeilfunktion verwendet. Dies bezieht sich auf den Gültigkeitsbereich, in dem sie definiert ist (dh Fenster oder globales Objekt). Im dritten Beispiel ist dies ein Serviceobjekt, da die Funktion mit dem Serviceobjekt aufgerufen wird.
Im vierten Beispiel wurde die Funktion arrow in der Funktion definiert und aufgerufen, deren Gültigkeitsbereich service ist. Daher wird das Service- Objekt gedruckt.

Hinweis: - Das globale Objekt wird in Node.Js und Windows-Objekten im Browser gedruckt.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow