JavaScript Function Apply
- Forrige side JS-funktion Call
- Næste side JS-funktion binding
metode genbrug
ved apply()
metoder, kan du skrive metoder til forskellige objekter.
JavaScript apply() metode
apply()
metoderne og call()
metoderne er meget lignende:
i dette eksempel,person
af fullName
metoden anvendesanvendelsetil person1
:
Eksempel
var person = { fullName: function() { return this.firstName + " " + this.lastName; } } var person1 = { firstName: "Bill", lastName: "Gates", } person.fullName.apply(person1); // vil returnere "Bill Gates"
Forskellen mellem call() og apply()
Forskellen er:
call()
metoden accepterer parametre separat.
apply()
metoden accepterer parametre i arrayform.
Hvis du vil bruge en array i stedet for en parameterliste, så apply()
metoden er meget praktisk.
Parameterbærende apply() metode
apply()
metode accepterer en array af parametre:
Eksempel
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName:\"Bill\", lastName: "Gates" } person.fullName.apply(person1, ["Oslo", "Norway"]);
og call()
metode sammenligning:
Eksempel
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName:\"Bill\", lastName: "Gates" } person.fullName.call(person1, "Oslo", "Norway");
at simulere max-metoden på et array
Du kan bruge Math.max()
Metode finde det største tal i (talletiste):
Eksempel
Math.max(1,2,3); // vil returnere 3
Da JavaScript-arrayer ikke har en max()-metode, kan du anvende Math.max()
Metode.
Eksempel
Math.max.apply(null, [1,2,3]); // vil også returnere 3
Den første parameter (null) er ikke vigtig. Den bruges ikke i dette eksempel.
Disse eksempler vil give det samme resultat:
Eksempel
Math.max.apply(Math, [1,2,3]); // vil også returnere 3
Eksempel
Math.max.apply(" ", [1,2,3]); // vil også returnere 3
Eksempel
Math.max.apply(0, [1,2,3]); // vil også returnere 3
JavaScript strict mode
I JavaScript strict mode, hvis apply()
Hvis den første parameter ikke er et objekt, vil den blive ejet af den kaldede funktion (objekt). I "ikke-strict"-tilstand bliver den globalt objekt.
- Forrige side JS-funktion Call
- Næste side JS-funktion binding