2013-02-08 73 views
0

过去,我被告知:“JavaScript中的所有内容都是函数”。我很好奇这有多少真相。作为一个例子,我引用了Chrome JS控制台:JavaScript中的所有内容都是一个函数

文字,操作员呢?

+2

你列出的功能的东西,但不是万能的。我从来没有听过任何人亲自说过有关JavaScript的内容。 http://stackoverflow.com/questions/3449596/every-object-is-a-function-and-every-function-is-object-which-is-correct – numbers1311407 2013-02-08 19:11:26

+1

“文字”是指某些值如何表示在源代码和解析器知道如何解释它。在这个层面上,函数的概念甚至不存在。在这一点上,你正在比较苹果和橙子。不知道该说什么关于“运营商”......他们完全是一个不同的野兽,把它们包括在这个比较中也是没有意义的。 – 2013-02-08 19:19:32

+1

你列出的东西都是构造函数。这就是Javascript定义类的方式(或者像类一样)。这并不意味着构建的对象(实例)本身就是函数。例如。在'var s = new String()'中,'s'不是函数。 – Stuart 2013-02-08 19:23:32

回答

2

“在Javascript中的一切都是一个函数”

需要的引证。

您的证明实际上证明构造函数是函数。而构造函数是JavaScript对类最接近的东西的句柄。

试试这个:

> typeof String 
"function" 

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

但实际上,功能也只是一种特殊类型的对象。

所以我会修改你的声明,而不是说:

几乎一切都在JavaScript是一个对象,包括函数

+0

完美,谢谢。我没有引用我的引用,这只是我似乎记得有人说,显然这是错的。 – calvintennant 2013-02-08 19:27:22

+0

而不是说“JavaScript中的几乎所有东西都是一个对象,包括函数”,最好是更具体一些,并说“不是*原语的东西*是一个对象。”,这包括函数。请注意,'typeof'并不总是可靠的,因为'typeof null'是'“object”',但实际上,它是一个原始的。 – d4nyll 2017-05-18 09:00:30

-1

不知道一个函数,但我一直听说JavaScript中的所有东西都是一个对象。

+0

[(不是)JavaScript中的所有内容都是对象](http://blog.brew.com.hk/not-everything-in-javascript-is-an-object/)。函数是JavaScript中的一个对象。 – d4nyll 2017-05-18 08:59:03

相关问题