JavaScript-funktion-kutsu
- Edellinen sivu JS-funktio-argumentit
- Seuraava sivu JS-funktio Call
JavaScript-funktion sisällä oleva koodi suoritetaan, kun “jotakin” kutsuu sitä.
Kutsu JavaScript-funktiota
Kun funktio onMäärittelyKun, funktion sisällä oleva koodi ei suoriteta.
Kun funktio onKutsuKun, funktion sisällä oleva koodi suoritetaan.
Funktion kutsumista voidaan myös sanoa “käynnistää funktio” tai “suorittaa funktio”.
Tässä kurssissa käytämme “Kutsu”。
Funktion kutsuminen funktiolla
esimerkki
function myFunction(a, b) { return a * b; } myFunction(10, 2); // Palauttaa 20
Nämä funktiot eivät kuulu mihinkään objektiin. Mutta JavaScriptissä aina on olemassa jokin oletusarvoinen globaali objekti.
HTML:ssä oletusarvoinen globaali objekti on HTML-sivu itsessään, ja kaikki yllä olevat funktiot kuuluvat HTML-sivulle.
Selaimessa tämä sivuobjekti on selaimen ikkuna. Yllä oleva funktio muuttuu automaattisesti ikkuna-funktioksi.
myFunction() ja window.myFunction() ovat samaa funktiota:
esimerkki
function myFunction(a, b) { return a * b; } window.myFunction(10, 2); // Palauttaa myös 20
Tämä on yleinen tapa kutsua funktiota, mutta se ei ole hyvä tapa.
globaalit muuttujat, metodit tai funktiot voivat helposti aiheuttaa nimeämiskäsitteitä ja haavoittuvuuksia globaalissa objektissa。
this avainsanaksi
JavaScriptissä sitä kutsutaan this
joka tarkoittaa "omistavaa" nykyistä koodia objektia。
this
arvoa, kun sitä käytetään funktiossa, se on "omistava" funktion objekti。
Huomaa this
Se ei ole muuttuja. Se on avainsana. Et voi muuttaa this
arvo。
globaali objekti
Kun objektia kutsutaan ilman omistavaa objektiathis
arvo tulee globaaliksi objektiksi。
web-selaimessa globaalit objektit ovat selaimen objekteja。
Tässä esimerkissä this
arvo palauttaa tämän window-objektin:
esimerkki
var x = myFunction(); // x tulee window-objektiksi function myFunction() { return this; }
Kutsu funktiota globaalina funktiona aiheuttaa this
arvo tulee globaaliksi objektiksi。
Käyttämällä window-objektia muuttujana on helppo kaataa ohjelma.
Kutsu funktiota metodina
JavaScriptissä voit määritellä funktion objektin metodiksi。
Seuraavassa esimerkissä luodaan objekti (myObject), jolla on kaksi ominaisuutta (firstName ja lastName) sekä yksi metodi (fullName):
esimerkki
var myObject = { firstName: "Bill", lastName: "Gates", fullName: function () { return this.firstName + " " + this.lastName; } } myObject.fullName(); // Palauttaa "Bill Gates"
fullName-metodi on funktio. Funktio kuuluu objektiin. myObject on funktion omistaja。
kutsutaan this
joka on "omistava" tämän JavaScript-koodin objekti. Tässä esimerkissä,this
arvo on myObject。
Kokeillaan! Muuta tämä fullName-metodi palauttamaan this
arvo:
esimerkki
var myObject = { firstName: "Bill", lastName: "Gates", fullName: function () { return this; } } myObject.fullName(); // Palauttaa [object Object] (omistava objekti)
Funktion kutsu objektina johtaa this
arvo tulee olemaan objektina.
kutsutaan funktiota funktiokonstruktorin avulla
jos funktiokutsun edessä on new
avainsana, niin tämä on rakentajakutsu.
Se näyttää siltä, että luot uuden funktion, mutta koska JavaScript-funktiot ovat objekteja, luot todella uuden objektin:
esimerkki
// Tämä on funktiokonstruktori: function myFunction(arg1, arg2) { this.firstName = arg1; this.lastName = arg2; } // Luodaan uusi objekti: var x = new myFunction("Bill", "Gates"); x.firstName; // palauttaa "Bill"
rakentajan kutsu luo uuden objektin. Uusi objekti perii ominaisuudet ja metodit rakentajastaan.
rakentajassa this
avainsana ei ole arvoa.
this
arvo tulee olemaan uuden objektin luomisen aikana kutsuttaessa funktiota.
- Edellinen sivu JS-funktio-argumentit
- Seuraava sivu JS-funktio Call