以两种不同的方式调用函数 - JavaScript

时间:2012-12-04 17:40:47

标签: javascript function anonymous-function

我对JavaScript很陌生,所以如果这个答案非常明显或我正在咆哮错误的树,我很抱歉!

以下代码段中的区别是什么:

function primeAddNum(innerHTML) {
    return function() {
        addNum(innerHTML);
        return false;
    };
}
var func = primeAddNum(innerHTML);

第二个:

var func = function() {
        return function() {
            addNum(innerHTML);
            return false;
        };
}();

最上面的一个按照我喜欢的方式工作,但不是底部,但这对我来说并不是那么重要。我想知道的是每个块背后的逻辑,因为我看不出差异!

3 个答案:

答案 0 :(得分:2)

第二个块的问题是那里innerHTML未定义,因为你没有传递它。如果将其更改为:

,它们将变为等效
var func = function(innerHTML) {
    return function() {
        addNum(innerHTML);
        return false;
    };
}(innerHTML);

答案 1 :(得分:1)

对于第二个,您只能创建一次func。但是对于第一个,您可以创建许多:

var func1 = primeAddNum(innerHTML);
var func2 = primeAddNum(someOtherInnerHTML);

答案 2 :(得分:-1)

没有区别,你可以毫无问题地使用它们

相关问题