Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Object.prototype.watch()

Niestandardowy
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Podsumowanie

Obserwuje własność obiektu i wywołuje funkcję, kiedy nastąpi przypisanie wartości do tej własności.

Składnia

obj.watch(wlasnosc ,
monitor) 

Parametry

wlasnosc 
Nazwa obserwowanej własności obiektu.
monitor 
Funkcja, która ma zostać wywołana przy zmianie własności.

Opis

Obserwuje własność wlasnosc danego obiektu i wywołuje monitor(wlasnosc, stara_wartosc, nowa_wartosc) kiedy tylko wlasnosc jest ustawiana. Funkcja monitorująca może filtrować (lub zerować [ang. 'nullify']) przypisanie wartości, zwracając zmodyfikowaną nowa_wartosc (lub stara_wartosc).

Jeśli zostanie usunięta własność, która miała funkcję monitorującą, ta funkcja monitorująca nie znika. Jeśli później własność ta zostanie odtworzona, funkcja monitorująca ciągle działa.

Aby usunąć funkcję monitorującą, należy użyć metody unwatch() Domyślnie metoda watch jest dziedziczona przez każdy obiekt pochodzący od Object.

Debuger JavaScriptu posiada możliwości podobne do tych dostarczonych przez metodę watch, jak również wiele innych narzędzi przydatnych podczas analizy kodu. Więcej informacji można znaleźć na stronie Venkman.

Przykłady

Przykład: Zastosowanie watch i unwatch

var o = {p:1};
o.watch("p",
   function (id,oldval,newval) {
      document.writeln("o." + id + " zmieniona z "
         + oldval + " na " + newval);
      return newval;
   });

o.p = 2;
o.p = 3;
delete o.p;
o.p = 4;

o.unwatch('p');
o.p = 5;

Powyższy skrypt wyświetla:

o.p zmieniona z 1 na 2
o.p zmieniona z 2 na 3
o.p zmieniona z undefined na 4

Zobacz także

Autorzy i etykiety dokumentu

 Autorzy tej strony: teoli, Mgjbot, Ptak82, Marcoos
 Ostatnia aktualizacja: teoli,