如何在JS中创建不可变值?

时间:2017-08-23 01:44:57

标签: javascript

我从这样的函数中获取一个随机值:

var randomString = function(length) {
        var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');

        if (! length) {
            length = Math.floor(Math.random() * chars.length);
        }

        var str = '';
        for (var i = 0; i < length; i++) {
            str += chars[Math.floor(Math.random() * chars.length)];
        }
        return str;
    }

然后:

var id = randomString(10);

但是当我尝试使用&#34; id&#34;变量它每次都有不同的值,因为它每次调用该函数。

我已经尝试将它放入一个物体并冻结它:

var id = {};
Object.defineProperty( id, "id", {
  value: randomString(10),
  writable: false,
  enumerable: false,
  configurable: false
});
         var newid = Object.freeze(id);  

但每次我尝试使用&#34; newid.id&#34;它仍然会获得一个新的随机字符串。变量。

如何两次使用相同的随机字符串?有没有办法冻结它或使它恒定?

2 个答案:

答案 0 :(得分:0)

没关系,我是个白痴。价值正在其他地方改变。

答案 1 :(得分:-2)

这将是非常容易使用PHP会话。但是,如何使用JavaScript cookie?在https://www.w3schools.com/js/js_cookies.asp

查看: JS Cookie