Funkcja Apply w JavaScript
- Poprzednia strona Wywołanie funkcji Call JS
- Następna strona Przypisanie funkcji JS
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"
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"]);
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");
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
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
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
Przykład
Math.max.apply(" ", [1,2,3]); // Też zwróci 3
Przykład
Math.max.apply(0, [1,2,3]); // Też zwróci 3
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.
- Poprzednia strona Wywołanie funkcji Call JS
- Następna strona Przypisanie funkcji JS