2

JavaScript でいくつかのスタイルを見てきました。読みやすさ、最適化、変数のスコープに関して、それらの違いに興味があります。長所と短所をいただければ幸いです。

方法 A:

function MyObj(options) {
  this.options = options;
}
MyObj.prototype.getOptions = function() {
  return this.options;
};

方法 B:

var MyObj = (function() {
  function MyObj(options) {
    this.options = options;
  }
  MyObj.prototype.getOptions = function() {
    return this.options;
  };
  return MyObj;
})();

ラッパーは IE で名前付き関数を処理するためのものだと誰かが言ったことがあります。ラッパーを配置することで、オブジェクトに対して静的になる変数と関数を区分化できることに気付きました。

ただし、ラッピングが非効率的または奇妙であるという不満も多くありました。また、CoffeeScript はメソッド B にコンパイルします。では、ベスト プラクティスである JS を手動で記述する場合、どのような場合に 1 つのメソッドを別のメソッドよりも優先して使用する必要があるのでしょうか?

4

1 に答える 1

1

2つ目は、モジュールパターンを使用することです。この簡略化された例では、実際の違いはありませんが、変数のカプセル化には2番目の例が一般的に優先され、さらにグローバル名前空間が不必要に汚染されるのを防ぎます。

于 2013-01-30T15:23:37.913 に答える