var functionName = function() {} 与 function functionName() {} 有什么区别?

7613

最近我开始维护别人的JavaScript代码。我正在修复错误,添加功能,并尝试整理代码并使其更加一致。

之前的开发人员使用了两种声明函数的方式,我无法确定是否有什么原因。

这两种方式是:

var functionOne = function() {
    // Some code
};

而且,

function functionTwo() {
    // Some code
}

为什么要使用这两种不同的方法,各自有哪些优缺点?是否有一种方法可以做到另一种方法无法实现的事情?

41个回答

0

两个函数之间的另一个区别是functionOne可以用作变量,可以在其中保存多个函数,而functionTwo则保存一些代码块,在调用时全部执行。请查看下面:

   var functionOne = (function() {
      return {

         sayHello: function(){
                console.log('say hello')

         },
         redirectPage:function(_url){
                window.location.href = _url;
         }

      }
})();

你可以选择调用哪个函数,例如 functionOne.sayHello 或 functionOne.redirectPage。如果调用 functionTwo,则整个代码块将被执行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接