首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JS中创建不可变值?

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

Stack Overflow用户
提问于 2017-08-23 09:44:57
回答 2查看 46关注 0票数 0

我从下面这样的函数中得到一个随机值:

代码语言: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;
    }

然后:

代码语言:javascript
复制
var id = randomString(10);

但当我尝试使用"id“变量时,它每次都是一个不同的值,因为它每次都会调用函数。

我试着把它放在一个对象中,然后像这样冻结它:

代码语言:javascript
复制
var id = {};
Object.defineProperty( id, "id", {
  value: randomString(10),
  writable: false,
  enumerable: false,
  configurable: false
});
         var newid = Object.freeze(id);  

但每次我尝试使用"newid.id“变量时,它仍然会得到一个新的随机字符串。

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

EN

回答 2

Stack Overflow用户

发布于 2017-08-23 10:44:37

不要紧,我是个笨蛋。价值在别的地方被改变了。

票数 0
EN

Stack Overflow用户

发布于 2017-08-23 09:53:51

这将是非常容易使用php会话。但是,使用javascript cookie怎么样呢?查看:https://www.w3schools.com/js/js_cookies.asp上的JS Cookie

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45829386

复制
相关文章

相似问题

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