维基文章中对一等公民的定义说:
一个对象是一流的,当它
- 可以存储在变量和数据结构中
- 可以作为参数传递给子程序
- 可以作为子程序的结果返回
- 可以在运行时构建
- 具有内在身份(独立于任何给定名称)
有人可以解释/详细说明第 5 个要求(粗体)吗?我觉得这篇文章应该提供更多细节,比如“内在身份”在什么意义上捕捉。
也许我们可以在讨论中使用 Javascript 中的函数和 C 中的函数来说明第 5 个项目符号。
我相信 C 中的函数是二等的,而 Javascript 中的函数是一等的,因为我们可以在 Javascript 中执行以下操作:
var foo = function () { console.log("Hello world"); };
,这在 C 中是不允许的。
同样,我的问题实际上是第 5 个项目符号(要求)。