0

変数の値を保護できることがわかっているため、ユーザーは既存の変数の値を変更できません!! これの実装はオブジェクトに問題はありません..??

例えば..

const x = 5;

x = 10;

alert(x)
// will be returned 5

オブジェクトを使用して..

 const obj = {
        init: function() {
         obj.show()
      },
      show: function() {
       //..
      },
      hide: function() {
      //..
      }
  }
  obj.init();
4

3 に答える 3

2

JS5 の使用を回避できる場合は、次のオプションがあります。

var CONST = {
  NAME: "The Cool Gizmo",
  VERSION: 2
};
Object.freeze(CONST);

alert(CONST.NAME);
于 2012-10-28T06:03:02.770 に答える
2
  var myObj = (function () {
    var privVar1 = 111,
        privVar2 = 222;

    var getConstants = function () {

        return { priv1: privVar1, priv2: privVar2 }
    };
    return { getConstants: getConstants };
})();

myObj.getConstants().priv1
于 2012-10-28T06:06:51.557 に答える
1

const キーワードは現在、すべてのブラウザーでサポートされているわけではなく、現在使用されている公式の Javascript 仕様の一部でもありません。(https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/const)

定数を実現するには、必要な動作を関数にカプセル化することを検討してください。

var getConstant = function(key) {
    var constants = { x: 5 };        
    return constants[key];
};

alert(getConstant("x"));

または、適切なスコープを持つ変数を使用して、サード パーティがその値を設定できないようにします。

function myModule() {
    var x = 5;
    doSomethingWith(x);
}
于 2012-10-28T04:35:54.217 に答える