0

複数のファイルにまたがる Javascript コードがありますが、IFFE を使用して縮小を容易にしたいと考えています。一部のメソッドはパブリックのままにしておく必要があります。

ウィキペディアは、アクセサーの実装を提案しています。

var counter = (function(){
  var i = 0;

  return {
    get: function(){
      return i;
    },
    set: function( val ){
      i = val;
    },
    increment: function() {
      return ++i;
    }
  };
}());

残念ながら、returnそのような関数が複数のファイルで宣言されている場合、これらを宣言するのは簡単ではありません。

以下は適切な解決策ですか?そうでない場合、何ですか?

var counter = (function(){

  var i = 0;

  // Import js file 1...
  this.get = function(){ return i; };

  // Import js file 2...
  this.set = function( val ){ i = val; };

  // Import js file 3...
  this.increment = function() { return ++i; };

  return this;

}());

PS:次の呼び出しを実行できるようにしたい:

counter.get();
counter.set(33);
counter.increment();
4

1 に答える 1