我目前正在试验自我复制代码。出于对语言的热爱,我想用 javascript 编写它。
我正在开发一个编写函数代码的程序,该代码又编写其函数自己的代码等等。基本上,所需的过程是这样的:
- 我手动创建了一个返回代码(包括一些随机性)和数值(提出的问题解决方案)的函数。
- 我多次调用这个函数,评估每个返回函数的结果,然后继续这个过程,直到我有足够好的代码来做我想做的事情。
现在,我总是被告知eval 是多么邪恶,如何永远不要使用它等等。但是,对于我的特定用例,Function 构造函数或 eval 似乎正是我正在寻找的。
所以,简而言之,问题是:
eval/Function 构造函数确实是在我的情况下使用的最佳工具吗?如果是这样,我想我会使用 Function 构造函数来确定执行代码的范围,但是有没有办法真正限制它访问全局范围?另外,在我的案例中,评估使用的一些好的做法是什么?