【发布时间】:2015-01-28 06:15:31
【问题描述】:
网络上有许多 javascript 文章将函数声明 function foo (){} 与函数表达式 var foo = function () {} 进行比较。他们通常会提到提升、条件中的行为等内容……但我不记得他们中的任何一个人谈论过性能。有什么区别吗?特别是在 ECMA5 的严格模式下(如果这改变了任何东西)。
我所说的性能当然是指执行性能(包括查找、范围遍历等),而不是声明性能,尽管这也是一个很好的了解。
【问题讨论】:
-
“性能我当然是指执行性能(包括查找、范围遍历等)” 没有。两种定义都创建了相同类型的函数对象。
-
我能想到的唯一性能问题是在某些引擎中使用 NFE — kangax.github.io/nfe/#jscript-memory-management
标签: javascript function ecmascript-5 function-declaration