2016-02-25 22 views
0

代码的一部分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代码将字符串转换为函数中的代码以我想要的方式进行编码?

我意识到这可能是一个难以理解的问题,对此抱歉,我不确定如何用其他方式来描述它。

+1

你'eval'功能应该有工作,除非'eval'不是'eval'。当然,如果该函数经常被称为*,它可能会很慢。 – Bergi

+0

@Bergi是啊,它被称为每秒数百次,所以它可能只是非常缓慢 –

回答

相关问题