JavaScript Function Apply

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"

Prøv det selv

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"]);

Prøv det selv

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");

Prøv det selv

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

Prøv det selv

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

Prøv det selv

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

Prøv det selv

Eksempel

Math.max.apply(" ", [1,2,3]); // vil også returnere 3

Prøv det selv

Eksempel

Math.max.apply(0, [1,2,3]); // vil også returnere 3

Prøv det selv

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.