JavaScript Function Call
- Forrige side JS-funktion parameter
- Næste side JS-funktion Call
Koden inden for en JavaScript funktion vil blive udført, når 'noget' kalder den.
Kald JavaScript funktion
Når funktionen bliverDefinerefunktionens interne kode vil ikke blive udført.
Når funktionen bliverKaldnår, funktionens interne kode vil blive udført.
Kald af funktion kan også siges at være 'start funktion' eller 'udføre funktion'.
I denne trin-for-trin guide bruger vi “Kald”。
Kald funktion som en funktion
eksempel
function myFunction(a, b) { return a * b; } myFunction(10, 2); // vil returnere 20
Disse funktioner tilhører ingen objekt. Men i JavaScript findes der altid en standard global objekt.
I HTML er den standard globale objekt er HTML siden selv, alle ovenstående funktioner 'tilhører' HTML siden.
I browseret, denne sideobjekt er browser vinduet. Funktionen automatisk bliver en vinduesfunktion.
myFunction() og window.myFunction() er den samme funktion:
eksempel
function myFunction(a, b) { return a * b; } window.myFunction(10, 2); // Vil også returnere 20
Dette er en almindelig måde at kalde en funktion på, men det er ikke en god vane.
globale variabler, metoder eller funktioner kan nemt forårsage navnekollisioner og sårbarheder i det globale objekt.
this nøgleord
i JavaScript kaldes this
noget, der er "at have" det objekt, der ejer det aktuelle kodeobjekt.
this
værdien, når den bruges i en funktion, er "at have" det objekt, der ejer funktionen.
Bemærk this
er ikke en variabel. Det er en nøgleord. Du kan ikke ændre this
værdien.
det globale objekt
når man kalder et objekt uden ejerobjektthis
værdien bliver en global objekt.
I en webbrowser er det globale objekt netop browserobjektet.
Dette eksempel bruger this
værdien returnerer dette window-objekt:
eksempel
var x = myFunction(); // x vil blive window-objektet function myFunction() { return this; }
at kalde en funktion som en global funktion, vil føre til this
værdien bliver en global objekt.
brug window-objektet som en variabel kan nemt få programmet til at krasje.
kald funktionen som en metode
I JavaScript kan du definere en funktion som en objektmetode.
Følgende eksempel opretter et objekt (myObject), med to egenskaber (firstName og lastName), samt en metode (fullName):
eksempel
var myObject = { firstName: "Bill", lastName: "Gates", fullName: function () { return this.firstName + " " + this.lastName; } } myObject.fullName(); // Vil returnere "Bill Gates"
fullName-metoden er en funktion. Funktionen tilhører objektet. myObject er funktionens ejer.
betyder this
noget, der er "at have" dette JavaScript-kodeobjekt. I dette eksempel,this
værdien er myObject.
test dette! Ret denne fullName-metode til at returnere this
værdien:
eksempel
var myObject = { firstName: "Bill", lastName: "Gates", fullName: function () { return this; } } myObject.fullName(); // Vil returnere [object Object] (ejerobjektet)
at kalde funktionen som en objektmetode, vil føre til this
værdien bliver selve objektet.
ved at kalde funktionen gennem funktionens konstruktør
hvis funktion kaldet er new
hvis der er en nøgleord før funktion kaldet
Det ser ud til, at du opretter en ny funktion, men da JavaScript-funktioner er objekter, opretter du faktisk et nyt objekt:
eksempel
// Dette er funktionens konstruktør: function myFunction(arg1, arg2) { this.firstName = arg1; this.lastName = arg2; } // Opretter et nyt objekt: var x = new myFunction("Bill", "Gates"); x.firstName; // vil returnere "Bill"
konstruktørkaldet opretter et nyt objekt. Nyt objekt arver egenskaber og metoder fra sin konstruktør.
i konstruktøren this
nøglen har ingen værdi.
this
værdien vil blive til et nyt objekt, der oprettes ved kald af funktionen.
- Forrige side JS-funktion parameter
- Næste side JS-funktion Call