如何仅使用字符串访问JavaScript数组中的函数?

时间:2019-08-05 18:54:50

标签: javascript arrays function

因此,我目前正在尝试仿真器编程,我选择了JavaScript,因为它是我完全流利的语言。

基本上,我的问题归结为: 我有一个数组,它是我的操作码表,因此它将我的函数绑定到一个数字。

E。 g。:

function function_one() {
  alert("hello");
}

function function_two() {
  alert("World")
}

var optable = [
        function_one,
        function_two
];

optable[0](); //runs function_one()
optable[1](); //runs function_two();

现在,我想编写一个简单而原始的编译器,它使用汇编代码行的一部分,在此数组中搜索第一个字符串,并返回optable内部函数的索引,但是我尝试的所有操作都只是返回{{ 1}}。 currentLine []的编码如下: [“ function_one”,“ foo”,“ bar”](是字符串,是的)

例如:

NaN

我了解这不是它的工作原理,因为optable数组包含函数并且我搜索字符串,但是如何使它工作呢?我有一些可以与eval()一起使用的东西,但是我已经知道这可能会导致...(安全性等)

2 个答案:

答案 0 :(得分:1)

您可以使用> app.use('/account/reset-password', rateLimit({ store: (new > RedisStore({ //configs here })), windowMs: 5 * 60000, max: 12, > delayMS: 0 > > })); 表示法:

object[propertyName]

答案 1 :(得分:-1)

您可以使用Eval()函数来评估以字符串形式表示的JavaScript代码,但不建议在生产环境中使用

例如eval(optable[0]())