我正在生成动态javascript,其中我创建了一些用于存储值的函数
function get[dynamicname](){
return "some value";
}
我想在另一个函数中调用此方法来获取我创建的所有函数的值
我拥有用于在我调用的函数中创建函数的所有动态名称。
function getallfunctionvals(){
for ( var i = 0; i < array.length; i++ ) {
var s="get";
var ss="()";
console.log(s+array[i]+ss);
}
}
这是我如何调用动态生成的函数,但在控制台中,我将函数名称作为字符串而不是其中的值
答案 0 :(得分:0)
如果已定义的函数在全局范围内,则可以使用
window[s+array[i]]()
所以如果你有像getName
这样的函数。它会做什么会打电话给
window["getName"]();
答案 1 :(得分:0)
你好看This帖子。
答案之一:
如果您知道它可以使用它的全局功能:
var functPtr = window[func_name];
//functPtr()
否则用包含该函数的父对象替换window。
答案 2 :(得分:0)
你可以使用eval功能。例如
var s = eval("function get(){}; gat();");
答案 3 :(得分:0)
首先:
function get[dynamicname](){
return "some value";
}
将生成错误:SyntaxError:意外的令牌[
由于javascript函数名和变量中不允许“[”。
但你可以这样做:
function getName () {console.log('Name')};
function getAge () {console.log('Age')};
当你调用上述功能时,你可以这样做:
var s="get";
var thingToGet = "Name";
var ss="()";
eval(s + thingToGet + ss)
我是否回答了你的问题?