выполнение анонимных функций, созданных с помощью оценки JavaScript ()

Одна причина - разделение Вашей модели предметной области от Вашей модели базы данных.

то, Что я делаю, использовать Разработку через тестирование, таким образом, я пишу свои уровни UI и Model сначала, и уровень Data дразнят, таким образом, UI и модель являются сборкой вокруг зависящих от домена объектов, затем позже я отображаю эти объекты на то, что когда-либо технология я использую Слой Данных. Это - плохая идея позволить структуре базы данных определить дизайн Вашего приложения. Где возможная запись приложение сначала и позволила тому влиянию структура Вашей базы данных, не наоборот.

17
задан 13 August 2009 в 11:53
поделиться

5 ответов

Как насчет этого?

var func = new Function('alert("hello");');

Чтобы добавить аргументы функции:

var func = new Function('what', 'alert("hello " + what);');
func('world'); // hello world

Обратите внимание, что функции являются объектами и могут быть присвоены любой переменной как есть:

var func = function () { alert('hello'); };
var otherFunc = func;
func = 'funky!';

function executeSomething(something) {
    something();
}
executeSomething(otherFunc); // Alerts 'hello'
33
ответ дан 30 November 2019 в 10:09
поделиться

IE не может eval выполнять функции (предположительно из соображений безопасности).

Лучшее обходной путь - поместить функцию в массив, например:

var func = eval('[' + funcStr + ']')[0];
14
ответ дан 30 November 2019 в 10:09
поделиться

Попробуйте

var funcStr = "var func = function() { alert('hello'); }";

eval(funcStr);

func();
6
ответ дан 30 November 2019 в 10:09
поделиться

Используйте eval следующим образом:

var func = eval('(' + funcStr + ')');
4
ответ дан 30 November 2019 в 10:09
поделиться

Также работает

var myFunc = function(myParam){
   // function body here
}
0
ответ дан 30 November 2019 в 10:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: