1

我对 JavaScript 很陌生,所以如果这个答案非常明显或者我在叫错树,我很抱歉!

以下代码片段有什么区别:

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

第二个:

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

顶部按我喜欢的方式工作,但底部不是,但这对我来说并不太重要。我想知道的是每个块背后的逻辑,因为我看不出有什么区别!

4

3 回答 3

2

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

var func = function(innerHTML) {
    return function() {
        addNum(innerHTML);
        return false;
    };
}(innerHTML);
于 2012-12-04T17:44:43.883 回答
1

那么第二个你只能创建func一次。但是使用第一个,您可以创建许多:

var func1 = primeAddNum(innerHTML);
var func2 = primeAddNum(someOtherInnerHTML);
于 2012-12-04T17:43:56.487 回答
-1

没有区别,你可以同时使用没有任何问题

于 2012-12-04T17:43:37.953 回答