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"));

或者,只需使用具有适当范围的变量来保护第 3 方不设置其值:

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