什么时候应该使用JavaScript匿名函数而不是传统的命名函数

时间:2014-02-11 15:53:55

标签: javascript

对于我下面的示例代码,使用传统的命名函数和匿名函数执行相同的任务。

我已阅读var functionName = function() {} vs function functionName() {},并了解第一个命名函数是如何在运行时定义的,而第二个匿名函数是在解析时为脚本块定义的。

我的问题具体是什么条件会使一种方法比另一种方法更合适?

function get1() {
    return 'Hello';
};

function alert1(data) {
    alert(data);
};

var get2 = function() {
    return 'Goodby';
};

var alert2 = function(data) {
    alert(data);
};


alert1(get1());

alert2(get2());

2 个答案:

答案 0 :(得分:0)

  

不必为匿名函数设置名称只是一个   方便的事情因为在大多数情况下功能的名称没有   真的很重要。大多数时候匿名函数和命名   功能将完美地完成任何工作。

查看这篇好文章:HERE

答案 1 :(得分:0)

在模块内部,我发现将任何内部的实用程序函数(例如function logfoofunction logbar )定义为返回语句,然后依赖它们更具可读性被吊起以便我可以在退货声明的上方/内部使用它们。

var myModule = (function() {
    return {
        foo:  function() {
            logfoo();
        },

        bar: function() {
            logbar();
        }
    }

    function logfoo() {
        console.log('foo');
    }

    function logbar() {
        console.log('bar');
    }
})();