Loading:


JavaScript Funkcja watch (Metoda obiektu: Object)

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

Metoda obiektu: Object




Składnia

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


<script language="JavaScript">



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;



</script>



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



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-2021 v.1.5 | design: diviXdesign & rainbowcolors