0

最初にこれら 2 つのコードを比較します。

function initializeView() {}
function init() {
    initializeView();
}

2番:

function init() {
    (function initializeView() {})();
}

initializeView() が init() 内でのみ呼び出される場合、どちらが優れていますか? (私は彼らが同じ仕事をしたと思います)

編集:最初はグローバル名前空間について考えていませんでした。それらはすべてクラス内にあるためです。

var MyObject = (function() {
    ...
    function init() {}
    ...
})();
4

1 に答える 1

2

1 つ目は不要な変数でグローバル名前空間を汚染しますが、2 つ目は不要なクロージャーを作成したり、 の呼び出しごとに追加の関数オブジェクトを作成したりしますinit

(IEFE が示唆するように) initializeView1 回だけ呼び出されると仮定すると、単純にコードをインライン化する方がよいでしょう。init()

複数回呼び出す関数として必要な場合は、お勧めします

var init = (function() {
    function initializeView() {}
    return function init() {
        …
        initializeView();
        …
    };
}());
于 2013-09-23T20:13:29.067 に答える