是否可以在javascript中滚动自己的“函数”构造或“eval”方法?

时间:2011-03-05 20:01:35

标签: javascript eval

是否可以在纯JavaScript中重新实现'function'或'eval'?例如。我想我想写下面的内容:

// 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 个答案:

答案 0 :(得分:4)

您可以在JavaScript中编写JavaScript解释器,例如Narcissus

答案 1 :(得分:1)

对于第一个,我不确定你是否在问一些不同的东西,但是这个有效:

var x = function() {return "cake";}
x();

答案 2 :(得分:0)

不,不可能这样做。

答案 3 :(得分:0)

如果您的需求很简单,那么您可以这样做:

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

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

helloFunction(); // alerts "Hello, World."