代碼的一部分my生成一個字符串,然後假設函數使用該字符串在VoxelJS中生成一個卡盤。JavaScript - 將字符串變量傳遞給eval
一個例子的字符串是 「(Y == 1)?1:0」
然後我需要被添加到這樣的功能,例如。 「功能(X,Y,Z){回報率(Y == 1)?1:0}」
我想使用eval將我的字符串切換到所需的代碼,像這樣:
gtest = function(x, y, z){return eval(generationString) };
但我誤解了如何使用eval,並意識到我需要嘗試其他的東西。
如果我在JavaScript控制檯中查看gtest
,它說它的結構是function (x, y, z){return eval(generationString) }
,當我希望它看起來像function (x, y, z){return return (y == 1)? 1 : 0}}
。嘗試傳遞包含eval的代碼會導致VoxelJS在嘗試生成新塊時崩潰/凍結。
如何以javascript代碼將字符串轉換爲函數中的代碼以我想要的方式進行編碼?
我意識到這可能是一個難以理解的問題,對此抱歉,我不確定如何用其他方式來描述它。
你'eval'功能應該有工作,除非'eval'不是'eval'。當然,如果該函數經常被稱爲*,它可能會很慢。 – Bergi
@Bergi是啊,它被稱爲每秒數百次,所以它可能只是非常緩慢 –