What is the difference between these two?
本问题已经有最佳答案,请猛点这里访问。
我看到下面的javascript函数的工作方式完全相同,那么它们之间除了语法之外还有什么区别。功能包括:
1 2 3 4 5 6 7 | var functionName=function(){ //some code here }; function functionName(){ //some code here } |
我用同样的方式称呼他们:
1 | functionName(); |
请不要告诉我有不同的语法,除此之外还有什么不同吗
1 2 | 1)speed of execution 2)Memory utilization etc. |
事先谢谢!
在StackOverflow中,这已被多次回答。这只是命名的方式。所以从答案中总结出一些观点,我想说:
函数声明和变量声明总是被javascript解释器无形地移动("提升")到其包含范围的顶部。显然,函数参数和语言定义的名称已经存在。
优点和缺点:
命名函数有几个优点:
- 元分析的名称。
functionInstance.name 会显示你的名字。 - 更重要的是,名称将打印在堆栈跟踪中。
- 名字也有助于编写自我记录或识字代码。
命名函数表达式有一个缺点
- IE有NFE内存泄漏
另一个主要区别
区别在于,
1 2 3 4 5 6 7 8 9 10 11 12 13 | // Error functionOne(); var functionOne = function() { } // No error functionTwo(); function functionTwo() { } |
工具书类