Loading:


JavaScript Funkcja apply (Metoda obiektu Function)

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


Możesz użyć zastosowanie do łańcucha konstruktorów dla obiektu, podobnie jak w Java. W poniższym przykładzie konstruktor dla objektu produktu  składa sie z dwuch parametrów nazwa i wartość. kolejny objekt prod_dept inicjalizuje tą unikalną zmienną i wywołuje konstruktor dla produktu w tym konstruktorze inicjalizuje inne zmienne. W tym przykładzie parametr arguments jest użyty dla wszystkich argumentów konstruktora objektu produkt

 

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





Napisz Artyku³

Listing

niema




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2020 v.1.5 | design: diviXdesign & rainbowcolors