Wikipedia 关于一等公民的文章指出,“一些作者”认为,如果语言支持在运行时创建函数,则函数只是语言中的一等公民。James Coglan 写的这篇文章直截了当地把函数称为一等公民——我不知道他是否意识到关于一等标准的争论。
以下是我的问题:
- 使用“运行时创建”的附加标准,JavaScript 程序是一等公民吗?
值得一提的是,基于更通用的标准(适用于其他对象),JavaScript 函数显然是一等公民,即它们可以作为变量传递;因此,我觉得上面提到的标准为对话增加了一个有趣的动态——或者至少是一个清晰的动态——而不是——正如一个用户所写的——“任意”。
- 如果是这样,在 JavaScript 中运行时创建函数是什么样的(这就是我们所说的承诺、回调、匿名等)?
- 如果不是,那么在运行时用另一种语言创建函数会是什么样子?