Mam funkcję i jej zawartość jako ciąg znaków.wykonywanie funkcji anonimowych utworzonych przy użyciu JavaScript eval()
var funcStr = "function() { alert('hello'); }";
Teraz robię eval(), aby faktycznie uzyskać tę funkcję w zmiennej.
var func = eval(funcStr);
Jeśli dobrze pamiętam, w Chrome i Opera, po prostu dzwoniąc
func();
powoływać tę funkcję, a wpis ten został wyświetlony.
Jednak w innych przeglądarkach tak nie było. nic się nie stało.
Nie chcę argumentować, która metoda jest właściwa, ale jak mogę to zrobić? Chcę móc wywołać metodę variable(); wykonać funkcję zapisaną w tej zmiennej.
Zastanawiam się, dlaczego potrzebujesz anonimowej funkcji reprezentowanej jako literał łańcuchowy, w przeciwieństwie do zwykłej funkcji nazwanej? –
FYI: Definiuję własny skrypt do mojej aplikacji internetowej. Piszę interpreter i muszę konstruować funkcje JS w locie, a następnie tworzyć z nich rzeczywiste funkcje wykonywalne. –
dlaczego nie napisałbyś tłumacza w tradycyjny sposób? – Breton