使用Javascript - 字符串转换为恒
答
你不 - JavaScript没有常量,也没有只读变量。 (JavaScript的一些扩展提供只读访问器,但这完全是另一回事。)
答
据我所知,Javascript中不存在常量。但是你可以创建一个对象,将公开此信息为只读属性:
<script type="text/javascript">
function defineConstant(obj, name, value) {
// Non-standard!
if(obj.__defineGetter__) {
obj.__defineGetter__(name, function() { return value; });
obj.__defineSetter__(name, function() { throw "Read-only property"; });
} else {
if(typeof(Object.defineProperty) != 'undefined') {
try {
// First, trying the "normal" way
defineReadOnlyProperty(obj, name, value);
} catch(ex) {
var temp = obj;
// Ugly hack to make "defineProperty" work in IE
// (only works on DOM elements prior IE9)
obj = document.createElement('DIV');
// Copying object members
for(var key in temp)
obj[key] = temp[key];
// Now it should define property
defineReadOnlyProperty(obj, name, value);
}
}
}
return obj;
}
function defineReadOnlyProperty(obj, name, value) {
Object.defineProperty(obj, name, {
get: function() { return value; },
set: function() { throw "Read-only property"; }
});
}
</script>
而上述功能的使用将是这样的:
<script type="text/javascript">
var Global = {};
Global = defineConstant(Global, 'MagicUser', 'User');
// Getting "User"
alert(Global.MagicUser);
// Throws an error
Global.MagicUser = 'User2';
</script>
希望这会帮助你。
其实我想这样做=>`str =“key:value”arr = str.split(':')obj = {arr [0]:arr [1]}`我该怎么做? – Srushti 2011-01-11 07:03:03