我目前正试图进入模拟器编程,我选择JavaScript是因为这是我完全熟悉的语言。
基本上我的问题可以归结为:
我有一个数组,它是我的Opcode表,因此将我的函数绑定到一个数字。
例如:
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()做了一些尝试,但我已经看到这可能会导致的问题...(安全等方面)。