1

私はJavaScriptを初めて使用するので、この答えが明白であるか、間違ったツリーを吠えている場合は、お詫びします。

次のコードスニペットの違いは何ですか。

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

2つ目:

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

上の方は私が望むように機能しますが、下の方は機能しませんが、それは私にとってそれほど重要ではありません。私が知りたいのは、違いがわからないため、各ブロックの背後にあるロジックです。

4

3 に答える 3

2

2番目のブロックの問題は、innerHTML渡していないため、そこで定義されていないことです。次のように変更すると、同等になります。

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

2つ目では、作成できるのはfunc1回だけです。しかし、最初のものを使用すると、多くを作成できます。

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

違いはなく、どちらも問題なく使用できます

于 2012-12-04T17:43:37.953 に答える