Можно ли свернуть вашу собственную конструкцию 'function' или метод 'eval' в javascript? - PullRequest
0 голосов
/ 05 марта 2011

Возможно ли вообще перестроить 'function' или 'eval' в чистом javascript?Например, допустим, я хотел написать следующее:

// note that I don't want to have to put code in a string here
var x = func() { var something = "nothing"; return something; }

или

var hiString = 'hi'  // note that it of course needs to be able to access the current context
evaluatize("function hi(){ alert(hiString); } hi();")

Возможно ли что-либо из этого в javascript?

Ответы [ 4 ]

4 голосов
/ 05 марта 2011

Вы можете написать интерпретатор JavaScript на JavaScript, например Нарцисс .

1 голос
/ 05 марта 2011

во-первых, я не уверен, что вы спрашивали что-то другое, но это работает:

var x = function() {return "cake";}
x();
0 голосов
/ 05 марта 2011

Если ваши потребности просты, то вы можете сделать что-то вроде этого:

var generator = function(input) {
    return function() {alert(input)};
};

var helloFunction = generator("Hello, World.");

helloFunction(); // alerts "Hello, World."
0 голосов
/ 05 марта 2011

Нет, это невозможно сделать.

...