我正在使用HTML5和JS的Scratch编程游戏。让我们假设有代码块(精灵)和功能块,可以用代码块填充。并假设我希望它以递归方式工作,即可以将函数放入另一个函数或自身。我们的想法是为机器人的运动编程。假设,在游戏中我创建了函数f3(x)并在其中放入了en arrow-block。然后我创建函数f4(x)并将f3(x)和箭头放入其中。然后我在命令行中输入f4(f3(箭头),箭头)-block。然后我写了一些递归函数。
RecursiveFunc: function(codeBlock) {
For(i=0;i<commandoLine;i++){
if(inArray(block, functions)===true){
RecursiveFunc(commandoLine[i])}
else{
executeArray.push(codeBlock)
}
}
}
真正发生的是当函数读取f4-block时,然后检测f3并执行自身并读取f3中的箭头,然后它不会继续读取f4中的箭头(f3,箭头),如它会像那样工作,例如,在Python中。这是一种TCO缺席问题吗?如何在JavaScript中解决它?
谢谢!