基于变量动态生成函数名称

时间:2011-03-29 16:44:39

标签: javascript jquery function

我想要的是创建一个函数,其名称将来自我的一个变量的内容。

示例:

var myFunctionName = "tryAgain";`

           [tryAgain]
               |
               |
               |
function myFunctionName() {
    alert('Try Again !');
};

4 个答案:

答案 0 :(得分:4)

在当前上下文中创建新函数

this[myFunctionName] = function() {
    // statements
}

答案 1 :(得分:3)

虽然你的问题已经被正确回答,但我建议使用一个包含你的函数的对象,假设你生成了多个。优点是,您可以迭代所有生成的函数,并将它们同时放入命名空间。

var funcs = {};
var name = 'test';

funcs[name] = function()
{
    alert("Called a custom function");
};

funcs.test();
// Does the same funcs[name]();

答案 2 :(得分:1)

window[myFunctionName] = function () {
    alert('Try Again !'); };

在全球范围内工作。

答案 3 :(得分:0)

eval("function "+myFunctionName+"(){alert('Try Again !');}");

我不推荐这个;)但是你可以做到这一点。