0

こんにちは、このテーマに関する興味深い投稿をいくつか見ましたが、それはカスタマイズされた回答が必要な本当に個人的な質問だと思います。だから私は、Javascript プラグインのコードをより邪魔にならないように整理するための最良の方法は何かを尋ねています。

だから私のコードは次のようになります:

    var myApp = (function(){
        //here are my global methods or variables
        var self = this;
        return {
            method1:function(){}
            method2:function(){}
            method3:function(){}
    }

   })() || (myApp = {})
myApp.method1();

アプリのコード全体を呼び出すか使用する method1 を実行します。このメソッド1を実行するためにaddEventListenerメソッドを使用してイベントを追加およびオンロードできると思います。私のコードはより良い組織を持つことができると思います。私のプラグインは、200 レーンの JavaScript コードのように少し小さく、Vanilla js でなければならないことを正確に伝えたいと思います。私の意見では、これは Web サイトの 1 つのページで使用されるため、"new" で呼び出されるプロトタイプ クラスを実行する必要はありません。

4

2 に答える 2

1

それは本当にあなたのプロジェクトとあなたが取得しようとしているものに依存します. コードをより適切に整理および保守するのに役立つパターンがいくつかあります。
私は、何年にもわたって慣れてきたパターンの組み合わせを使用しています. 私のアプリケーションのモジュール
の ボイラープレートは次のとおりです。

;(function(global, udnefined){

    var app = global.app || {},
        moduleName = 'util',
        module = app[moduleName] || {};

    // "private" vars
    var version = "1.2";

    // fake "private" members (the udnerscore naming convention)
    module._bindEventHandlers = function(){
        // code here

        // for chainability purposes
        return this;
    }

    // "public" method
    module.someMethod = function(){


        // for chainability purposes
        return this;
    }

    // "public" method
    module.someOtherMethod = function(){


        // for chainability purposes
        return this;
    }

    // the init method
    module.init = function(){
        this
            ._bindEventHandlers()
            .someMethod();
    }

    app[moduleName] = module;
    global.app = app;

})(this);

そして、アプリで(アプリの初期化中または実際にモジュールが必要なときはいつでも)、次のように呼び出すことができます:

app.util.init();
app.util.someOtherMethod();

ほとんどのモジュールには初期化ロジック (メソッド) が必要であり、ほとんどのモジュールはいくつかのイベント (dom またはカスタム イベント) (メソッド) をリッスンし、汚染しないため、提供されたモジュールは新しいモジュールを作成するために非常に再利用可能です。変数を含むグローバル名前空間 (メイン アプリにオブジェクトを追加するだけです)。init_bindEventHandlers

于 2013-01-21T10:51:37.930 に答える
1

私はこの行の何かを使用します。私が成し遂げる必要があることにすべて依存している

(function(app, undefined){ 
  var module = app.module = (function(){
    var privatestuff

    return {}
  }())

  var singelton = app.singleton = (function(){
    var Module = function(){}

    module.prototype.method1 = function(){}

    return new Module()
  }())

  var ModulePrototype = app.ModulePrototype = function(){
    var Module = function(){}

    module.prototype.method1 = function(){}

    return Module
  }
}(myApp = window.myApp ||{}))
于 2013-01-21T11:08:06.807 に答える