zoukankan      html  css  js  c++  java
  • JSON.stringify 函数与 Object.defineProperty 的坑:不可枚举属性无法写入

    例子

    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 }
    
  • 相关阅读:
    线程池问题
    高级I/O
    闹钟设计
    线程竞争问题
    线程基本函数
    SpringMvc支持跨域访问
    gitlab qq邮件配置
    gitlab断电
    docker run always
    电子书网
  • 原文地址:https://www.cnblogs.com/onsummer/p/14802816.html
Copyright © 2011-2022 走看看