JavaScript中的localStorage无法存储带有箭头函数的对象 | 您所在的位置:网站首页 › c里面的箭头 › JavaScript中的localStorage无法存储带有箭头函数的对象 |
参见英文答案 > Is it valid to define functions in JSON results? 11个我正在使用Javascript创建一个基于Web的小型RPG,不幸的是,一旦实现我的保存和加载功能,我的代码的关键部分就完全失败了. 截至目前,我将所有玩家数据保存在我的播放器对象中: var player = { stats: { level: 1, healthBase: 50, health: 50, strength: null, strengthBase: 7, strengthMods: { }, },}; 使用这两个功能: function save() { localStorage.setItem("playerData", JSON.stringify(player));}function load() { player = JSON.parse(localStorage.getItem('playerData'));} 这对一切都很有效,除了一小部分.在某些情况下,我需要在我的统计数据中添加修饰符来改变它们,我这样做 player.stats.strengthMods.mods = () => ( 5 ); 但是,如果我保存然后加载我的游戏,请致电 player.stats.strengthMods.mods 控制台只显示一个空对象.我无法理解为什么我的浏览器拒绝加载箭头功能,其他一切都完全加载. 知道为什么吗? 解决方法: JSON没有任何方法来存储函数定义;它是一种数据序列化格式,而不是任意对象序列化格式.由于您必须JSONify将值放在localStorage中,因此无法保留函数. localStorage不是这里的直接问题;即使你从未使用它,该功能也无法在往返JSON和返回时幸存. |
CopyRight 2018-2019 实验室设备网 版权所有 |