我正在尝试在javascript中创建一个名称取决于变量的函数。
例如:
var myFuncName = 'somethingWicked';
function myFuncName(){console.log('wicked');};
somethingWicked(); // consoles 'wicked'
我似乎无法想办法做到这一点....我试图评估它,但是当我尝试在以后使用该功能时它“不存在”......或者更确切地说我得到一个ReferenceError,函数是未定义的......
任何帮助都将不胜感激。
答案 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']()