0

test()ウィンドウのサイズが変更されるたびに実行されるコードを以下に示します。

var i = 0;
var test = (function() {
    console.log(i++);
})();

$(window).resize(function() {
    test();
});

コード: http://jsfiddle.net/qhoc/NEUdA/

ただし、リサイズ内で利用できないUncaught TypeError: undefined is not a functionため取得しています。test()

誰かが理由を説明するのを助けることができますか? また、 (1) 自己実行関数を持ち、(2) 内で呼び出すことができるようにするためresizeの回避策は何ですか?

4

2 に答える 2

1

あなたはおそらくこれをしたいでしょう:

var test = function() {
    console.log(i++);
};

これの代わりに:

var test = (function() {
    console.log(i++);
})();

更新されたフィドル: http://jsfiddle.net/NEUdA/1/

2 番目の形式はその場で関数を呼び出しますが、return ステートメントがないため undefined が返されるため、test は undefined になります。

テストを自己実行したいのはなぜですか?

于 2013-11-06T22:50:13.637 に答える