require.js加载一个静态的data.js,为什么在使用时,data对象中的部分字符串变成了"" ?

发布于 2022-09-04 08:45:54 字数 808 浏览 10 评论 0

require.js加载一个静态的data.js,为什么在使用时,data对象中的部分字符串变成了"" ?

data.js

define([
    "js/common"
], function(common) {
    var data = {};
    
    data[common.type.ON] = [
        {
            name: "name1",
            description: "description1"
        },
        {
            name: "name2",
            description: "description2"
        }
    ];
    
    data[common.type.OFF] = [
        {
            name: "name3",
            description: "description3"
        },
        {
            name: "name4",
            description: "description4"
        }
    ];
    
    return data;
});

加载的地方:

define([
    "js/data"
], function(data) {
    // 在这里使用data,会出现data中部分字符串为""的情况
    // 清空浏览器缓存,会恢复正常;但是问题不止出现过一次
});

麻烦大家帮忙分析一下是什么情况,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦初启 2022-09-11 08:45:54

你这个模块返回了 data,注意,你每你 require 这个模块的时候,得到的都是同一个 data,所以如果你在处理过程中对某个属性进行的赋值操作,那它就可能改变值。

如果你想每次返回的 data 都是新的(相同的初始数据),你这个模块应该导出一个工厂方法,调用工厂方法返回一个新的 data 对象,如下示意

define([...], function() {
    return function() {
        return { ... };
    };
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文