有人可以向我解释以下JavaScript表达式的含义吗?为什么他们会产生不同的结果?以下两个表达式如何帮助任何人区分JavaScript中的值或引用类型?
(function () {}) === (function () {})
//=> false
(function () {})() === (function () {})()
//=> true
答案 0 :(得分:5)
(function () {}) === (function () {})
比较两个功能。功能等同是棘手的。
(function () {})() === (function () {})()
比较两个函数的结果,这两个函数都返回undefined
。
答案 1 :(得分:0)
你创建了两个函数 - 尽管我们知道它们是相同的(没有),但它们是两个不同的函数。
在第二个中,我们比较返回值 - 默认情况下 - 未定义。