首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript常量

JavaScript常量
EN

Stack Overflow用户
提问于 2012-10-28 12:27:43
回答 3查看 322关注 0票数 0

我们知道我们可以保护变量的值,所以用户不能改变现有变量的值!!实现这个对象没有问题吗?

例如..

代码语言:javascript
复制
const x = 5;

x = 10;

alert(x)
// will be returned 5

使用对象..

代码语言:javascript
复制
 const obj = {
        init: function() {
         obj.show()
      },
      show: function() {
       //..
      },
      hide: function() {
      //..
      }
  }
  obj.init();
EN

回答 3

Stack Overflow用户

发布于 2012-10-28 14:03:03

如果你可以使用JS5,你有这样的选择:

代码语言:javascript
复制
var CONST = {
  NAME: "The Cool Gizmo",
  VERSION: 2
};
Object.freeze(CONST);

alert(CONST.NAME);
票数 2
EN

Stack Overflow用户

发布于 2012-10-28 14:06:52

代码语言:javascript
复制
  var myObj = (function () {
    var privVar1 = 111,
        privVar2 = 222;

    var getConstants = function () {

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

myObj.getConstants().priv1
票数 2
EN

Stack Overflow用户

发布于 2012-10-28 12:35:54

目前并不是所有的浏览器都支持const关键字,它也不是目前使用的官方Javascript规范的一部分。(https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/const)

要实现常量,请考虑将所需的行为封装在函数中:

代码语言:javascript
复制
var getConstant = function(key) {
    var constants = { x: 5 };        
    return constants[key];
};

alert(getConstant("x"));

或者,只需使用具有适当作用域的变量来保护第三方不会设置其值:

代码语言:javascript
复制
function myModule() {
    var x = 5;
    doSomethingWith(x);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13106371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档