JS:függvényt hívó objektum meghatározása
Sziasztok!
Van valakinek ötlete, hogy meg lehet-e állapítani egy függvényben/objektumban, hogy ki volt a meghívója (valami call order-ben az előző objektum kéne)
PL:
<html>
<head>
<title>hopp</title>
<script type="text/javascript">
function ac()
{
this.id="ao";
this.cd=function()
{
alert(ao.cd.caller);
}
}
ao=new ac();
function bc()
{
this.id="bo";
this.hivd=function()
{
ao.cd();
}
}
bo=new bc();
function hivo()
{
bo.hivd();
}
hivo();
</script>
</head>
<body>
</body>
</html>
Az "alert(ao.cd.caller);"-rel ki lehet alertezni a hívó függvényt, de ennél tovább nem jutottam; kéne, hogy ez a fv melyik objektumban van, vagyis referencia a "bo" objektumra. valami ilyesmi nincsen véletlenül, hogy: ao.cd.caller.parentObj ???
Köszi!
■ Van valakinek ötlete, hogy meg lehet-e állapítani egy függvényben/objektumban, hogy ki volt a meghívója (valami call order-ben az előző objektum kéne)
PL:
<html>
<head>
<title>hopp</title>
<script type="text/javascript">
function ac()
{
this.id="ao";
this.cd=function()
{
alert(ao.cd.caller);
}
}
ao=new ac();
function bc()
{
this.id="bo";
this.hivd=function()
{
ao.cd();
}
}
bo=new bc();
function hivo()
{
bo.hivd();
}
hivo();
</script>
</head>
<body>
</body>
</html>
Az "alert(ao.cd.caller);"-rel ki lehet alertezni a hívó függvényt, de ennél tovább nem jutottam; kéne, hogy ez a fv melyik objektumban van, vagyis referencia a "bo" objektumra. valami ilyesmi nincsen véletlenül, hogy: ao.cd.caller.parentObj ???
Köszi!
Mihez kell? this para?
a this nem működik
persze
igen ezt ismertem
Olyan megoldás érdekelne, amiben minden előkészület nélkül meghatározhatom a hívó objektumot --- ahogy a hívó függvényt is (a "caller"-rel)
A JS úgyis nyilvántartja, hogy ki a hívó objektum (hiszen oda tér vissza), miért kéne trükköznöm, hogy megtudjam?
ok
1000 köszi
no
ha meg szép js kódot akarsz, térj át prototype kódbázisra ;)
(és lesznek ilyen sexy class-aid mint nekem http://weblabor.hu/forumok/temak/14445#comment-31597
http://weblabor.hu/blog/20060524/ajax-fejlesztes#comment-28201
:))) )
szomorú
Na mindegy.
Köszi a segítséget!
...
Á, megvan! A 3.27-ben fog megjelenni és az lesz a neve, hogy parentVercingeTorix, esetünkben egyszerűen this.parentVercingeTorix vagy ao.cd.caller.vercingeTorix. Már csak 3 évet kell várnom, megkönnyebbültem...
tényleg, és ilyen van?
a.b.c
mindegyiknek van id tulajdonsága, pl. a.b.id="alma" a.id="aidé"
ha a c egyik függvényében vagyok, az id-je elérhető: this.id vagy c.id
A "b" id-je elérhető valahogy anélkül, hogy megnevezném a b-t? pl. this.parent.id?
...vagy az "a" id-je: c.parent.parent.id
Van valami ilyesmi?
(dom-ban van parentNode, de nem dom objektumra gondolok, és nem akarom előredefiniálni a "parent" tulajdonságot -- sem utódefiniálni persze)
Köszi...
hát részemről
http://htmlinfo.polyhistor.hu/js13guide/contents.htm 7-8 fejezet,
én maradok prototype kódbázisos megoldásnál, ahhoz nem kell 4-5 kávé kódolás előtt :)
http://encytemedia.com/blog/articles/2006/05/23/prototype-inheritance-madness
ui: jajj én már elértem az 5-ös szintet http://dean.edwards.name/weblog/2006/06/levels/ :)))