2

可能重复:
Javascript 动态变量名

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

例如:

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

我似乎想不出办法……我试图评估它,但是当我稍后尝试使用该函数时,它“不存在”……或者更确切地说,我得到了一个 ReferenceError该函数未定义...

任何帮助,将不胜感激。

4

3 回答 3

4

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

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'
于 2012-11-20T17:34:59.523 回答
0
var myFuncName = 'somethingWicked';
window[myFuncName] = function(){console.log('wicked');};
somethingWicked(); // consoles 'wicked'
于 2012-11-20T17:34:48.223 回答
0

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

var myRelatedFunctions = {};
var myFuncName = 'somethingWicked';
myRelatedFunctions[myFuncName] = function (){console.log('wicked');};
myRelatedFunctions['somethingWicked']()
于 2012-11-20T17:35:33.443 回答