0

これらのうちどれがこのオブジェクトを宣言する最も効率的/ベストプラクティスな方法であるかについて混乱しています。

関数内で再利用していますが、関数が呼び出されるたびに宣言されていることを意味すると思います

function mapVals(ele){

  var myObj = {
    "chkOne" : "HV1",
    "chkTwo" : "HV2",
    "chkThree" : "HV3"
  }

  var thisVal = myObj[ele.id];
  //Other code
}

関数の外側ですが、グローバル名前空間を汚染しています

var myObj = {
  "chkOne" : "HV1",
  "chkTwo" : "HV2",
  "chkThree" : "HV3"
}

function mapVals(ele){      
  var thisVal = myObj[ele.id];
  //Other code
}

それとも、一時的なスコープを作成するためのカプセル化手法でしょうか? 構文は知っていますが、これまで使用したことがありません。

(function(){

  var myObj = {
     "chkOne" : "HV1",
     "chkTwo" : "HV2",
     "chkThree" : "HV3"
   }

   function mapVals(ele){      
      var thisVal = myObj[ele.id];
      //Other code
   }

})();

または、私が考慮していない他の何か?

4

2 に答える 2

0

グローバル名前空間を汚染したくない場合は、3 番目のオプションが最適です。

于 2013-08-01T14:36:21.480 に答える