【问题标题】:Everything in Javascript is a Function [duplicate]Javascript中的一切都是一个函数[重复]
【发布时间】:2013-01-24 15:19:05
【问题描述】:

过去有人告诉我:“Javascript 中的一切都是函数”。我很好奇这有多少真实性。作为一个例子,我引用了 Chrome JS 控制台:

> String
function String() { [native code] }
> Number
function Number() { [native code] }
> Object
function Object() { [native code] }
> Array
function Array() { [native code] }
> Function
function Function() { [native code] }

文字、操作符呢?

【问题讨论】:

  • 你列出的东西是函数,但不是全部。我从未听过任何人亲自对 JavaScript 这么说。 stackoverflow.com/questions/3449596/…
  • “文字”是指某些值在源代码中的表示方式,解析器知道如何解释它。在这个层面上,函数的概念甚至不存在。在这一点上,您正在将苹果与橙子进行比较。不知道该说什么关于“操作员”...他们是完全不同的野兽,将它们包括在这个比较中也没有意义。
  • 你列出的都是构造函数。这是 Javascript 定义类(或类似类)的方式。这并不意味着构造的对象(实例)本身就是函数。例如。在var s = new String() 中,s 不是函数。

标签: javascript


【解决方案1】:

不知道函数,但我一直听说 JavaScript 中的一切都是对象。

【讨论】:

【解决方案2】:

“Javascript 中的一切都是函数”

需要引用。

你的证明实际上证明了构造函数是函数。构造函数是 JavaScript 最接近类的句柄。

试试这个:

> typeof String
"function"

> var a = new String("testing123");
> typeof a
"object"

但实际上,函数只是一种特殊的对象。

所以我会修改你的陈述改为:

几乎 Javascript 中的一切都是对象,包括函数

【讨论】:

  • 完美,谢谢。我没有引用我的引用,这只是我似乎记得有人说过的话,显然这是错误的。
  • 与其说“在 Javascript 中几乎所有东西都是对象,包括函数”,不如说得更具体一些,说“所有不是 primitive 的东西都是对象。 ",这包括函数。请注意typeof 并不总是可靠的,因为typeof null"object",但实际上它是一个原语。
猜你喜欢
  • 1970-01-01
  • 2010-12-21
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 2018-12-24
相关资源
最近更新 更多