创建变量名称功能

时间:2012-11-20 17:32:53

标签: javascript function variables

  

可能重复:
  Javascript dynamic variable name

我正在尝试在javascript中创建一个名称取决于变量的函数。

例如:

var myFuncName = 'somethingWicked';
function myFuncName(){console.log('wicked');};
somethingWicked(); // consoles 'wicked'

我似乎无法想办法做到这一点....我试图评估它,但是当我尝试在以后使用该功能时它“不存在”......或者更确切地说我得到一个ReferenceError,函数是未定义的......

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

您可以将函数分配给对象并像这样引用它们:

var funcs = {};
var myFuncName = 'somethingWicked';
funcs[myFuncName] = function(){console.log('wicked');};
funcs.somethingWicked(); // consoles 'wicked'

或者,您可以将它们保留为全局变量,但仍然需要通过window对象分配它们:

var myFuncName = 'somethingWicked';
window[myFuncName] = function(){console.log('wicked');};
somethingWicked(); // consoles 'wicked'

答案 1 :(得分:0)

var myFuncName = 'somethingWicked';
window[myFuncName] = function(){console.log('wicked');};
somethingWicked(); // consoles 'wicked'

答案 2 :(得分:0)

任何时候你必须创建依赖于变量的动态名称的东西,你应该使用对象的属性或数组成员。

var myRelatedFunctions = {};
var myFuncName = 'somethingWicked';
myRelatedFunctions[myFuncName] = function (){console.log('wicked');};
myRelatedFunctions['somethingWicked']()