亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何僅使用字符串訪問 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條經驗 獲得超8個贊

您可以使用Eval()函數來評估表示為字符串的 JavaScript 代碼,但不建議在生產中使用

例如 eval(optable[0]())



查看完整回答
反對 回復 2021-09-04
  • 2 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號