js 2种定义函数方法的差别

来源:luqidong 发布时间:2014-02-16 20:18:39 点击数:
我最近开始维护别人的JavaScript代码。我修复bug,增加功能,也试图整理一下代码,并使其更加一致。 
以前的开发人员使用的声明函数两种方法,我不能工作了,如果它背后还是不是理由。 
这两种方法是:
var functionOne = function() {
    // Some code
};
function functionTwo() {
    // Some code
}

究竟是什么原因,使用这两种不同的方法和各有什么利弊?是否有任何可以与一种方法,该方法不能与其他做做什么?

所不同的是functionOne被定义在运行时,而functionTwo是定义在解析时的脚本块。例如:

<script>

  // Error
  functionOne();

  var functionOne = function() {
  }
</script>

<script>
  // No error
  functionTwo();

  function functionTwo() {
  }
</script>

顺便说一下,所不同的是不仅它们被分析在不同的时间。从本质上讲,functionOne的仅仅是分配了一个匿名函数的变量,而functionTwo实际上是一个命名函数。呼叫。的toString()上都看到其中的差别。这在某些情况下,你希望得到一个函数的名称编程显著。

本文由www.78oa.com免费oa系统原创。转载请注明出处,