首页 > Web开发 > 详细

JSON.stringify 函数与 Object.defineProperty 的坑:不可枚举属性无法写入

时间:2021-05-24 09:42:33      阅读:28      评论:0      收藏:0      [点我收藏+]

例子

const obj = {}
Object.defineProperty(obj, ‘prop‘, {
  value: 10
})
JSON.stringify(obj) // 输出:{}

原因

好多博客介绍的是 “不可枚举” 的属性不会写入字符串,我也知道 function、日期、正则等无法写入,可万万没想到自己写的 Object.defineProperty 函数也是造成 JSON 无法序列化的原因,那就是一个非常重要的选项:enumerable

改进

const obj = {}
Object.defineProperty(obj, ‘prop‘, {
  value: 10,
  enumerable: true // 默认是 false,即不可枚举这个属性,在这里吃了大亏
})
JSON.stringify(obj) // 输出:{ prop: 10 }

JSON.stringify 函数与 Object.defineProperty 的坑:不可枚举属性无法写入

原文:https://www.cnblogs.com/onsummer/p/14802816.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!