JavaScript Function Call

De code binnen een JavaScript-functie wordt uitgevoerd wanneer 'iets' het aanroept.

JavaScript-functie aanroepen

wanneer de functie wordtDefiniërenwanneer, de code binnen de functie wordt niet uitgevoerd.

wanneer de functie wordtOproepenwanneer, de code binnen de functie wordt uitgevoerd.

Het oproepen van een functie kan ook worden genoemd 'functie starten' of 'functie uitvoeren'.

In deze handleiding gebruiken we de "Oproepen。”

Functies worden opgeroepen via functieformaat

Instance

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // zal 20 teruggeven

Probeer het zelf

Deze functies behoren niet tot enig object. Maar in JavaScript bestaat er altijd een standaard globale object.

In HTML is de standaard globale object het HTML-pagina zelf, alle functies 'horen' bij het HTML-pagina.

In de browser, dit paginaobject is het browservenster. De functie bovenaan wordt automatisch een vensterfunctie.

myFunction() en window.myFunction() zijn dezelfde functie:

Instance

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // Het zal ook 20 retourneren

Probeer het zelf

Dit is een gebruikelijke manier om een functie aan te roepen, maar het is geen goede gewoonte.

globale variabelen, methoden of functies kunnen gemakkelijk naamconflicten en kwetsbaarheden in het globale object veroorzaken.

this keyword

in JavaScript wordt genoemd this ding, dat verwijst naar het "bezit" van het huidige code object.

this waarde, wanneer het in een functie wordt gebruikt, is het "bezitter" van de functie object.

Let op this is geen variabele. Het behoort tot de keyword. Je kunt het niet veranderen this waarde.

globale object

wanneer een object zonder bezitterobject wordt aangeroepen,this waarde wordt het globale object.

in een webbrowser is het globale object het browserobject.

Dit voorbeeld gebruikt this waarde retourneert dit window-object:

Instance

var x = myFunction();            // x zal het window-object worden
function myFunction() {
   return this;
}

Probeer het zelf

een functie aanroepen als een globale functie zal this waarde wordt het globale object.

gebruik de window-object als variabele kan het programma gemakkelijk crashten.

roep de functie als een methode aan

In JavaScript kun je functies definiëren als objectmethoden.

Hier is een voorbeeld dat een object (myObject) creëert, met twee eigenschappen (firstName en lastName) en een methode (fullName):

Instance

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Het zal "Bill Gates" retourneren

Probeer het zelf

fullName-methode is een functie. Deze functie behoort tot het object. myObject is de eigenaar van de functie.

wordt genoemd this het ding, dat "bezit" deze JavaScript-code object, is. In dit voorbeeld,this waarde is myObject.

Test dit! Pas de fullName-methode aan om this waarde:

Instance

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Het zal [object Object] (het bezitterobject) retourneren

Probeer het zelf

het aanroepen van de functie als objectmethode zal this waarde wordt het object zelf.

door de functie constructor de functie aan te roepen

als de functie-aanroep voorafgaat door new als je de keyword new voor de functie-aanroep hebt gebruikt, dan is dit een constructor-aanroep.

Het ziet eruit als je een nieuwe functie creëert, maar omdat JavaScript-functies objecten zijn, creëer je eigenlijk een nieuw object:

Instance

// Dit is de functie constructor:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName  = arg2;
}
// Een nieuw object is gecreëerd:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // zal "Bill" teruggeven"

Probeer het zelf

de constructor-aanroep zal een nieuw object creëren. Het nieuwe object zal eigenschappen en methoden van de constructor erven.

binnen de constructor this de keyword heeft geen waarde.

this waarde zal het nieuwe object zijn dat wordt gecreëerd bij het aanroepen van de functie.