我们知道我们可以保护变量的值,所以用户不能改变现有变量的值!!实现这个对象没有问题吗?
例如..
const x = 5;
x = 10;
alert(x)
// will be returned 5使用对象..
const obj = {
init: function() {
obj.show()
},
show: function() {
//..
},
hide: function() {
//..
}
}
obj.init();发布于 2012-10-28 14:03:03
如果你可以使用JS5,你有这样的选择:
var CONST = {
NAME: "The Cool Gizmo",
VERSION: 2
};
Object.freeze(CONST);
alert(CONST.NAME);发布于 2012-10-28 14:06:52
var myObj = (function () {
var privVar1 = 111,
privVar2 = 222;
var getConstants = function () {
return { priv1: privVar1, priv2: privVar2 }
};
return { getConstants: getConstants };
})();
myObj.getConstants().priv1发布于 2012-10-28 12:35:54
目前并不是所有的浏览器都支持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);
}https://stackoverflow.com/questions/13106371
复制相似问题