Funkcja Apply w JavaScript

metoda powtarzalności

Przez apply() Pozwala pisać metody dla różnych obiektów.

metody apply() w JavaScript

apply() Metoda do call() Metoda jest bardzo podobna:

W tym przykładzie,person z fullName Metodaaplikacjido person1:

Przykład

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName: "Bill",
    lastName: "Gates",
}
person.fullName.apply(person1);  // Zwróci "Bill Gates"

Spróbuj sam

Różnica między call() a apply()

Różnica polega na:

call() Metoda przyjmuje parametry osobno.

apply() Metoda przyjmuje parametry w formie tablicy.

Jeśli chcemy użyć tablicy zamiast listy parametrów, to apply() jest bardzo wygodna.

Metoda z parametrami

apply() Metoda przyjmująca parametry w formie tablicy:

Przykład

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

Spróbuj sam

z call() Metoda porównawcza:

Przykład

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

Spróbuj sam

Symulować metodę max na tablicy

Możesz użyć Math.max() Metoda znajduje (największą liczbę) w liście liczb:

Przykład

Math.max(1,2,3);  // Zwróci 3

Spróbuj sam

Ponieważ tablice JavaScript nie mają metody max(), możesz zastosować Math.max() Metoda.

Przykład

Math.max.apply(null, [1,2,3]); // Też zwróci 3

Spróbuj sam

Pierwszy parametr (null) jest bez znaczenia. W tym przykładzie nie jest używany.

Te przykłady dadzą takie same wyniki:

Przykład

Math.max.apply(Math, [1,2,3]); // Też zwróci 3

Spróbuj sam

Przykład

Math.max.apply(" ", [1,2,3]); // Też zwróci 3

Spróbuj sam

Przykład

Math.max.apply(0, [1,2,3]); // Też zwróci 3

Spróbuj sam

Tryb "strict" JavaScript

W trybie "strict" JavaScript, jeśli apply() Jeśli pierwszy parametr metody nie jest obiektem, staje się właścicielem (obiektu) wywoływanej funkcji. W trybie "nie-strict", staje się obiektem globalnym.