ugrás a tartalomhoz

eval és névtelen objektum JSben

zzrek · 2007. Nov. 5. (H), 21.47
Sziasztok!

Ez rendben megy:
  1. alert(eval("[{x:1,y:2},3]")[0].x)  
Meg ez is:
  1. alert(eval("a={x:1,y:2}").x)  
De ez nem ("invalid label" hiba):
  1. alert(eval("{x:1,y:2}").x)  
Az eval nem hajlandó névtelen objektumot értékként visszaadni, vagy kiértékelni(?). Miért? Van-e valami trükk, hogy mégis visszaadjon?
(Firefoxban próbáltam)

Köszi a tippeket.
 
1

na, jó..

zzrek · 2007. Nov. 5. (H), 21.58
Bocs, második felindulásomban már sikerült kigugliznom valamit, így már jó:
  1. alert(eval("({x:1,y:2})").x)  
...vagyis zárójelezni kell. Mindenesetre furcsa, hogy anélkül nem ment. :-? Azért ha valaki egyszerűen megindokolja, hogy miért kell ez, ez érdekelne, köszi.
2

azért mert, csak

toxin · 2007. Nov. 5. (H), 23.14
lásd:
  1. (function(){alert('foo');})()  
ez miért ilyen ? , de ha nem tetszik még mindig ott van a
  1. new Function("return " + "{x:1,y:2}")().x;  
üdv Csaba