为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUWWW 2021-09-04 17:34:58
所以,我目前正在尝试进入模拟器编程,我选择了 JavaScript,因为它是我完全流利的语言。基本上我的问题归结为:我有一个数组,它是我的操作码表,因此它将我的函数绑定到一个数字。例如: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 中函数的索引,但我尝试的所有操作都只返回NaN. currentLine[] 编码如下: ["function_one", "foo", "bar"] (作为字符串,是的)例如:var currentLine = byLine[i].split(" ");        console.log(currentLine[0]);        currentProgram += optable.findIndex(currentLine[0]); //<-- NaN        console.log(currentProgram);我知道这不是它的工作方式,因为 optable 数组包含函数并且我搜索一个字符串,但是我怎样才能让它工作?我有一些可以使用 eval() 的东西,但我已经可以看到这可能会导致什么......(安全等)
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您可以使用object[propertyName]符号:


const optable = {

  function_one : ()=>console.log("Hello"),

  function_two : ()=>console.log("world!"),

};


stringContainingAFunctionName = "function_one";

optable[stringContainingAFunctionName]();


查看完整回答
反对 回复 2021-09-04
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

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

例如 eval(optable[0]())



查看完整回答
反对 回复 2021-09-04
  • 2 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信