JavaScript函数等效

时间:2014-01-02 16:37:01

标签: javascript function object

有人可以向我解释以下JavaScript表达式的含义吗?为什么他们会产生不同的结果?以下两个表达式如何帮助任何人区分JavaScript中的值或引用类型?

(function () {}) === (function () {})
//=> false

(function () {})() === (function () {})()
//=> true

2 个答案:

答案 0 :(得分:5)

(function () {}) === (function () {})

比较两个功能。功能等同是棘手的。

(function () {})() === (function () {})()

比较两个函数的结果,这两个函数都返回undefined

答案 1 :(得分:0)

你创建了两个函数 - 尽管我们知道它们是相同的(没有),但它们是两个不同的函数。

在第二个中,我们比较返回值 - 默认情况下 - 未定义。