中间javascript:将一个函数及其参数赋值给变量并稍后执行

时间:2011-10-15 06:39:11

标签: javascript

我在javascript中有一个函数:

function alertMe($a)
{
   alert($a);
}

我可以这样执行:alertMe(“你好”);

我想做的是将带有“Hello”参数的alertMe(“Hello”)赋值给变量$ func, 并且可以通过执行类似$ func();

的操作来执行此操作

3 个答案:

答案 0 :(得分:10)

我想将评论添加为答案

代码

//define the function
function alertMe(a) {
    //return the wrapped function
    return function () {
        alert(a);
    }
}
//declare the variable
var z = alertMe("Hello");
//invoke now
z();

答案 1 :(得分:4)

只需构建您需要的功能并将其存储在变量中:

var func = function() { alertMe("Hello") };
// and later...
func();

如果你想改变字符串,你甚至可以创建一个函数来构建你的函数:

function buildIt(message) {
    return function() { alertMe(message) };
}

var func1 = buildIt("Hello");
var func2 = buildIt("Pancakes");
// And later...
func1(); // says "Hello"
func2(); // says "Pancakes"

答案 2 :(得分:-3)

您应该使用eval执行保存的功能。例如:

var func = "alertMe('Hello')";
eval(func);