为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

温温酱 2018-10-12 19:22:57
require.js加载一个静态的data.js,为什么在使用时,data对象中的部分字符串变成了"" ?data.jsdefine([    "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中部分字符串为""的情况     // 清空浏览器缓存,会恢复正常;但是问题不止出现过一次});麻烦大家帮忙分析一下是什么情况,谢谢!
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

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

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

define([...], function() {    return function() {        return { ... };
    };
});


查看完整回答
反对 回复 2018-11-06
  • 1 回答
  • 0 关注
  • 545 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号