是否可以定义一个像这样的函数run
?
a = run('var x = 100;')
b = run('console.log(x);') // prints 100
c = run('y = 1;')
d = run('console.log(y);') // prints 1
我尝试了几种方法,使用apply并传递相同的上下文,将上下文绑定到函数,返回带有递归调用的闭包等,但我似乎无法使用任何东西。
答案 0 :(得分:1)
是的,正如MyLibrary所说,你可能想要eval,如果你真的想这样做的话。所以:
var run = eval;
a = run('var x = 100;')
b = run('console.log(x);') // prints 100
c = run('y = 1;')
d = run('console.log(y);') // prints 1
似乎有效。
JavaScript allows将函数赋值给变量,因此可以将run变量设置为eval。就eval而言,您可能想要了解it,正如您从评论中看到的那样,它通常不鼓励在正常函数创建中使用它。
答案 1 :(得分:0)