2

私はまったく新しいサイトをセットアップし、自分にとって意味のある方法で JavaScript を構成しています。これらのウィジェット/機能のメソッドをカプセル化するウィジェット/機能の「名前空間」とともに、サイトの名前空間を作成しました。サイト上の特定のページが特定の (パブリック) メソッドを呼び出してウィジェット/機能をインスタンス化できるように、各「名前空間」のスコープを設定しました。

これが私のJavaScript構造の例です:

var THESITE = THESITE || (function(){
    navigation = function(){
        var init = function(){
            // do navigation stuff
        }

        return {
            init : init
        }
    },

    widgets = {
         widget1 : (function(){
            var newWidget = function(){
                // do widget1 stuff
            }

            return {
                newWidget : newWidget
            }
         })(),
         widget2 : (function(){
            var newWidget = function(){
                // do widget2 stuff
            }

            return {
                newWidget : newWidget
            }
         })(),
         widget3 : (function(){
            var newWidget = function(){
                // do widget3 stuff
            }

            return {
                newWidget : newWidget
            }
         })();
    },

    init = function(){
        navigation.init();
    }

    return {
        init: init,
        navigation: navigation,
        widgets: widgets,
    }
})();

THESITE.init();

そして、これらのメソッドの 1 つがどのように呼び出されるかの例:

THESITE.widgets.widget3.newWidget();

私のjavascriptを実用的/一般的に構成するこの方法はありますか?

4

1 に答える 1

1

はい、あなたの構造は一般的だと思います。ただし、大規模なプロジェクトでは、モジュール/ウィジェットを別々のファイルに保持し、名前空間を使用してグローバル スコープでの衝突が発生しないようにすることが実用的です。コードを構成する良い方法の詳細については、@chris-allen が提案したスレッドを参照してください。

于 2013-12-23T10:23:26.537 に答える