首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一等公民

一等公民
EN

Stack Overflow用户
提问于 2013-07-04 02:29:46
回答 1查看 4K关注 0票数 9

wiki文章中发现的头等公民的定义是:

对象是一流的。

  • 可以存储在变量和数据结构中。
  • 可以作为参数传递给子例程。
  • 可以作为子例程的结果返回。
  • 可以在运行时构造。
  • 具有内部标识(独立于任何给定名称)

请有人解释/详细说明第五项要求(黑体字)好吗?我觉得这篇文章应该提供更多的细节,就像“内在身份”所捕捉到的那样。

也许我们可以在讨论中使用Javascript中的函数和C中的函数来说明第五个项目。

我相信C中的函数是二等的,而函数在Javascript中是一流的,因为我们可以在Javascript中做如下的事情:

代码语言:javascript
复制
var foo = function () { console.log("Hello world"); };

,这在C.

再一次,我的问题是关于第五个项目(要求)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-04 02:32:37

内在的身份在概念上是相当简单的。如果一个事物拥有它,它的身份并不取决于它的外部事物。它可以被别名,引用,重命名,什么-有你,但它仍然保持着“身份”是什么。人(无论如何,大多数人)都有内在的身份。你就是你,无论你的名字是什么,你住在哪里,无论你在生活中遭受了什么物质上的转变。

另一方面,电子没有内在的同一性。也许这里引入量子力学只是混淆了这个问题,但我认为这是一个非常棒的例子。没有办法“标记”或“标记”一个电子,使我们能够分辨它和邻居之间的区别。如果你用另一个电子代替,绝对没有办法区分旧的和新的。

回到计算机:“内在标识”的一个例子可能是在Java中返回的值,或者JavaScript引擎使用的允许此语句为false的任何机制:

代码语言:javascript
复制
{} === {} // false

但这是事实:

代码语言:javascript
复制
function foo () {}
var bar = foo;
var baz = bar;
baz === foo; // true
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17461003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档