Pozwala zastosować metodę innego obiektu w kontekście innego obiektu
Metoda obiektu: Function
Składnia
apply(thisArg[, argArray])
Parametry
- thisArg - Parametr do wywołania obiektu.
- argArray - Argument tablicy dla obiektu.
Opis
Możesz przypisać różnice tego obiektu kiedy wywołujesz istniejącą funkcję.
Odnosi sięto do bieżącego objektu.
Z zastosowaniem możesz zapisać metode raz i następnie dziedziczyć ją w innym objekcie bez konieczności nadpisywania metody dla nowego obiektu.
Zastosowanie to jest bardzo podobne do funkcji call, zwyjątkiem dla danego typu argumentu.
Możesz użyć tablicy argumentów zamiast ustawiać nazwy parametrów
Z zastosowaniem, możesz użyć tablicy np. apply(this, [name, value]) lub tablicy bjektów apply(this, new Array(name, value))
Możesz również użyć arguments dla parametru argArray.
Arguments jest lokalną zmienną funkcji.
Może być użyty dla wszystkich nieokreślonych argumentów wywołanego objektu.
A zatem nie musisz znać argumentów wywołanego objektu kiedy używasz zastosowania metody. Możesz użyć argumentów aby przejść wszystkie argumenty wywołanego objektu. Wywołany objekt jest następnie odpowiedzialny za obsługę argumentów
Przykłady
Przykład: Zastosowanie apply to chain constructors
function product(name, value){
this.name = name;
if(value > 1000)
this.value = 999;
else
this.value = value;
}
function prod_dept(name, value, dept){
this.dept = dept;
product.apply(this, arguments);
}
prod_dept.prototype = new product();
// since 5 is less than 1000 value is set
cheese = new prod_dept("feta", 5, "food");
// since 5000 is above 1000, value will be 999
car = new prod_dept("honda", 5000, "auto");
Listing
Ranga: Administrator serwisu Punktów: 0