1

静的変数が必要な場合は、すぐに関数式(IIFE)を使用してすぐに呼び出すことがあります-example1。

(function(){
    var private_statik = 'hi',
        publik = {};
    return publik;
}())

それ以外の場合は、それらを必要とする関数のプロパティとしてそれらを追加するだけです-example2。

function foo () {
}
foo.statik = 'hello';

例1は良いですbc私はカプセル化(プライバシー)の恩恵を受けています。例2は良いです。それは単純で、自己実行のオーバーヘッドはありません。

他に考慮すべきことはありますか?

私が持っている特定のケースはページチェンジャーです- sFlipPage()。すべてのDOM要素を静的な場所にキャッシュして、呼び出しごとに使用できるようにし、関数を呼び出すたびにDOMから要素をプルする必要がないようにします。

ありがとう!

4

1 に答える 1

0

主な違いは、プライバシーと実行順序です。IIFEを使用すると、静的変数をプライベートにすることができます。単純な関数ではできません。優れたオブジェクト指向設計(カプセル化)を促進するために、デフォルトでIIFEを使用することをお勧めします。

トレードオフは、特定のオブジェクトが必要なときだけでなく、IIFEがすぐに呼び出されることです。

于 2013-02-11T21:05:09.213 に答える