Zoeken…


Invoering

Met knoop 6 wordt de nieuwe LTS-versie van knoop. We zien een aantal verbeteringen in de taal door de nieuwe ES6-normen introduceert. We zullen enkele van de geïntroduceerde nieuwe functies en voorbeelden van hoe ze te implementeren doorlopen.

Standaard functieparameters

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

addTwo(3) // Returns the result 5

Met de toevoeging van standaard functieparameters kunt u nu argumenten optioneel maken en deze standaard laten instellen op een waarde naar keuze.

Rest parameters

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

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

Door het laatste argument van uw functie vooraf te laten gaan naar ... alle aan de functie doorgegeven argumenten gelezen als een array. In dit voorbeeld krijgen we meerdere argumenten door en krijgen we de lengte van de array die op basis van die argumenten is gemaakt.

Gespreide operator

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

Met de spread-syntaxis kan een uitdrukking worden uitgebreid op plaatsen waar meerdere argumenten (voor functieaanroepen) of meerdere elementen (voor array-literals) of meerdere variabelen worden verwacht. Net als de restparameters, geeft u uw array gewoon een voorwoord met ...

Pijl functies

Pijlfunctie is de nieuwe manier om een functie in ECMAScript 6 te definiëren.

// 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;
}

"dit" in pijlfunctie

deze in functie verwijst naar een instantieobject dat wordt gebruikt om die functie aan te roepen, maar deze in pijlfunctie is gelijk aan deze van functie waarin pijlfunctie is gedefinieerd.

Laten we begrijpen met behulp van diagram lexicale reikwijdte hiervan in pijlfunctie

Inzicht in het gebruik van voorbeelden.

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 de pijlfunctie is dit het lexicale bereik, dat is het bereik van de functie waarin de pijlfunctie is gedefinieerd.
Het eerste voorbeeld is de traditionele manier om functies te definiëren en daarom verwijst dit naar het object global / window .
In het tweede voorbeeld wordt dit gebruikt binnen de pijlfunctie, vandaar dat dit verwijst naar het bereik waar het is gedefinieerd (dit is Windows of een globaal object). In het derde voorbeeld is dit serviceobject omdat serviceobject wordt gebruikt om de functie aan te roepen.
Vierde voorbeeld arrow functie omschreven en aangeroepen vanuit de functie waarvan reikwijdte dienst, dus het serviceobject afgedrukt.

Opmerking: - globaal object wordt afgedrukt in Node.Js en Windows-object in browser.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow