代码的一部分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是啊,它被称为每秒数百次,所以它可能只是非常缓慢 –