将javascript传递给函数

时间:2010-03-08 12:15:35

标签: javascript

我可以将一些Javascript传递给函数,然后在函数中执行该Javascript,例如

test("a = 1; b = 2; test2(a,b);");

function test(js) {
// execute dynamically generated JS here.
}

基本上我有一些在服务器上生成的代码,我想将该代码传递给JS函数,当它完成处理时,它会执行作为参数传递的代码。

这对setTimeout的参数也很有用,然后传递的代码可以在超时事件中执行。

可以这样做吗?

8 个答案:

答案 0 :(得分:2)

如果你做这样的事情可以作为一个例子:

function foo(){
alert('foo');
}

function bar(fn){
fn();
}

bar(foo); // alerts 'foo'

答案 1 :(得分:1)

eval()可能想要的。

答案 2 :(得分:1)

您可以使用eval()http://www.w3schools.com/jsref/jsref_eval.asp

执行此操作

但是,请注意不要让自己面临安全问题。

Why is using the JavaScript eval function a bad idea?

答案 3 :(得分:1)

您可以使用eval()

答案 4 :(得分:1)

除了使用eval之外,您还可以从参数字符串中创建一个函数,如此

test("a = 1; b = 2; test2(a,b);");

function test(js) {
   var fn = new Function(js);
   // execute you new function [fn] here.
}

答案 5 :(得分:0)

我认为您正在寻找eval(),但您应该寻找的是json

答案 6 :(得分:0)

这是eval的用途:

test("a = 1; b = 2; test2(a,b);"); 

function test(js) { 
    eval(js); 
} 

提示“eval is evil”的评论。

答案 7 :(得分:0)

你可以这样做:

function test(js) {
  setTimeout(js, 1000); //Execute in 1 second
}