JavaScript ECMA-262重写评估函数

JavaScript ECMA-262重写评估函数,javascript,Javascript,我正在使用一个软件工具(Opus Pro Digital Workshop UK),它使用OpusScript(ECMA-262 JS的一种类型)。我已经创建了一个eval函数,不确定如何创建结果。它工作正常,但是网上有很多关于使用eval函数的问题。因此,我正在发布该函数,并希望获得帮助,无需eval即可重新编写它,如果可能的话: //len = 36 //puzzle pieces-F1-F36 function combiner10(len){ s200 = new Arr

我正在使用一个软件工具(Opus Pro Digital Workshop UK),它使用OpusScript(ECMA-262 JS的一种类型)。我已经创建了一个eval函数,不确定如何创建结果。它工作正常,但是网上有很多关于使用eval函数的问题。因此,我正在发布该函数,并希望获得帮助,无需eval即可重新编写它,如果可能的话:

//len = 36 //puzzle pieces-F1-F36
    function combiner10(len){
    s200 = new Array(214,401,607,791,977,1132,1140,1141,1142,1143,1146,1057,916,760,611,465,312,175,75,77,77,77,77,65,186,364,631,837,1035,1067,218,219,223,220,1158,1152);
    s300 = new Array(56,58,63,67,66,69,208,320,463,565,647,704,704,704,702,701,699,701,703,581,457,328,202,74,694,700,698,696,701,697,566,448,335,201,533,374);
    for (var i=1;i<=len;i++)
          eval("F"+i+".SetPosition(s200[i-1],s300[i-1])");
    }
//len=36//拼图块-F1-F36
功能组合器10(len){
s200=新阵列(2144016077919771132114011141114211431146161461057916760611465312175,75,77,77,77,65186364631831035106721821922322011581152);
s300=新阵列(56,58,63,67,66,69208320463565647704702701699701703581457328202,74694700698696701697566448335201533374);

对于(var i=1;i我根本看不出需要在这里使用
eval()
的原因

将片段放入一个数组中,这样就不用名为F1-F36的变量,只需使用包含每个片段的数组即可。然后可以执行以下操作:

var pieces = [puzzle pieces F1-F36 in this array];   // F1 in the 0 position

function combiner10(len){
    var s200 = [214,401,607,791,977,1132,1140,1141,1142,1143,1146,1057,916,760,611,465,312,175,75,77,77,77,77,65,186,364,631,837,1035,1067,218,219,223,220,1158,1152];
    var s300 = [56,58,63,67,66,69,208,320,463,565,647,704,704,704,702,701,699,701,703,581,457,328,202,74,694,700,698,696,701,697,566,448,335,201,533,374];
    for (var i = 0; i < len; i++) {
          pieces[i].SetPosition(s200[i],s300[i]);
    }
}
var pieces=[此数组中的拼图块F1-F36];//F1位于0位置
功能组合器10(len){
var s200=[214401607791977113211401114111421143114616161057916760611465312175,75,77,77,77,77,65186364631831035106721821922322011581152];
变量s300=[56,58,63,67,66,69208320463565647704702701699701703581457328202,74694700698696701697566448335201533374];
对于(变量i=0;i

此外,局部变量应该在前面声明
var

用数组替换它。什么是
F1
F36
?为什么不使用数组?对Opus语法做了一些小改动。谢谢,这很有效。