Javascript - 将字符串转换为常量

时间:2011-01-11 06:58:09

标签: javascript string

如何在Javascript中将字符串转换为常量

e.g

str =“用户” // Javascript魔术 用户

2 个答案:

答案 0 :(得分:2)

你没有 - JavaScript没有常量,也没有只读变量。 (JavaScript的一些扩展提供了只读访问者,但这完全不同。)

答案 1 :(得分:0)

据我所知,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>

希望这会对你有所帮助。