Hi,
warum eigentlich?
weil dabei Code ausgeführt wird, der augenscheinlich nicht der vollen Kontrolle des Programmierers unterliegt, weil er sonst nicht als String ausgeführt wurde.
Das Risiko bei JavaScript ist zugegebenermaßen gering, weil man mit dieser Sprache eh nichts schlimmes anstellen kann. Die Regel "eval is evil" gilt aber prinzipiell in allen Programmiersprachen. Du solltest schon mit _absoluter_ Gewissheit wissen, was Du tust, bevor Du eval() einsetzt - und wenn Du Dir der Risiken nicht bewusst bist, dann bin ich mir ziemlich sicher, dass Du diese Gewissheit gar nicht haben kannst.
Oder anders gefragt, wenn z.B. die Alternative der zusätzliche Aufruf einer neuen Funktion wäre, was wäre daran "besser"?
Die neue Funktion. Ich unterstelle aber, dass es nicht die einzige Alternative ist: JavaScript beherrscht Referenzen, und auf die meisten Objekte kann verschiedenartig zugegriffen werden, inklusive der Übergabe von Namen in Stringform.
Cheatah