我有我的JavaScript代码和一个包含许多不同功能的文件(几百个)。我想创建一个新函数(相同的文件或不同的文件),它将随机执行一个现有的函数。
其中一个问题是没有可识别的命名模式,我需要让它从文件中选择任何函数。也许通过识别一行并检查关键字功能是否存在?
由于功能的数量和需要添加更多功能,因此无法使用数组。我需要将该函数视为未知变量。
答案 0 :(得分:0)
一般来说,最简单/最干净的方法是将所有函数存储在对象中:
var myFunctions: {
fn1: function() {},
fn2: function() {},
fn3: function() {}
// ...
}
然后你可以执行var fnNames = Object.keys(myFunctions)
,它会将你的所有函数名称作为数组。
然后你可以:myFunctions[fnNames[Math.floor(Math.random()*fnNames.length)]]
更长更清洁的版本:
var randomFunctionNameIndex = Math.floor(Math.random()*fnNames.length);
var randomFunctionName = fnNames[randomFunctionNameIndex];
var randomFunction = myFunctions[randomFunctionName];
var result = randomFunction();