Autor Zpráva
Měsíček
Profil
Zdravím všechny,
při pročítání JS dokumentace jsem narazil na metody __lookupGetter__ a __lookupSetter__ i přes veškerou snahu jsem nepochopil k čemu slouží a hlavně jak je použít (co se týče syntaxe v kódu). Mohli byste mi vy zkušenější s tím pomoci? Již předem děkuji.
bohyn
Profil
Jestli sem to spravne pochopil tak getter a setter jsou v podstate fce ktere se tvari jako vlastnost objektu.
lookup pak vraci tyto funkce.
Měsíček
Profil
No, zkusil jsem si vyrobit takový malý příklad, ale pořád nechápu k čemu mi
<script type="text/javascript">
/**
  * __lookupGetter__
  */
  var 
    x = { a : 13 };
    x.__defineGetter__("b", function () { return this.a+(13*13); });
      alert("[1] =>"+x.b+"\n\n[2] =>"+x.__lookupGetter__("b")); 
/**
  * Vrátí [1] => 182
  *
  *       [2] => function(){
  *               return this.a+169;
  *              }
  */
</script>
je výsledek [2] .. přeci pro existenci getteru či setteru nepotřebuji dlouhosáhlou metodu __lookup[getter/setter]__. A co se týče "vrácení funkce", jak se to využívá v praxi?

Jinak omlouvám se za ty hloupé dotazy, ale chci v tom mít jasno :)
bohyn
Profil
Měsíček
Pokud chces stejny g/setter nastavit jine vlastnosti a nechces kopirovat stejnou funkci furt dokola (nebo ji nemas k dispozici) tak pouzijes lookup.
Pripada mi elegantnejsi v tomto pripade pouzit lookup:
var x = { a : "13abc", b : "113,12xyz" };
x.__defineGetter__("aFloat", function() { return parseFloat(this.a); });
x.__defineGetter__("bFloat", this.__lookupGetter__("aFloat"));


Edit: Sakra blbej priklad, ale pokud by to bylo u jineho objektu tak je to pouzitelne :)
bohyn
Profil
var x = { a : "13abc" };
x.__defineGetter__("aFloat", function() { return parseFloat(this.a); });

var y = { a : "113,12xyz" };
y.__defineGetter__("aFloat", x.__lookupGetter__("aFloat"));
Měsíček
Profil
Ó výborně, už to začínám pomalu chápat, takže díky za ten příklad, to bylo to co jsem potřeboval a teď dotaz číslo 2, existuje ještě nějáké využití této metody nebo je pouze tady tato?
bohyn
Profil
Měsíček
Mne to pripada celkem dostatecne, kdyz mas fci na jeden radek tak to tolik neulehci, ale kdyz je o neco sofistikovanejsi tak si usetris cas pri ladeni a zapis nebude dlouhej jak tejden.

Dale uz me napada jen to ze muses zonglovat g/setterama za behu - neni to snad skvely napad? :p

Co se tyce realneho vyuziti tak se obavam je v tuto chvili nulove. Chybi podpora browseru. A to jak __define[G|S]etter__ tak __lookup[G|S]etter__

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: