Object.defineProperty 相关学习

Object.defineProperty 学习
 
  • 描述:
    • 方法直接在对象上定义一个新属性,或修改对象上的现有属性
    • 并返回该对象。该方法允许精确地添加或修改对象上的属性;
    • 语法:
      • Object.defineProperty(obj, prop, descriptor)
        • obj
          必需。目标对象 
        • prop
          定义或者修改的属性名称
        • descriptor
          对要定义或者修改的属性的描述
  • descriptor 目标属性所拥有的特性配置项
    • configurable:true | false,
      • 是否可以删除目标属性或是否可以再次修改属性的特性(writable, configurable, enumerable)。
      • 设置为true可以被删除或可以重新设置特性;
      • 设置为false,不能被可以被删除或不可以重新设置特性。
      • 默认为false。
    • enumerable:true | false,
      • 此属性是否可以被枚举(使用for...in或Object.keys())。
      • 设置为true可以被枚举;
      • 设置为false,不能被枚举。
      • 默认为false。
    • value:任意类型的值,
      • 属性对应的值,可以使任意类型的值,
      • 默认为undefined
    • writable:true | false
      • 属性的值是否可以被重写。
      • 设置为true可以被重写;
      • 设置为false,不能被重写。
      • 默认为false。
    • 存储器描述
      • 注意:
        • 1. 当使用了getter或setter方法,不允许使用writable和value这两个属性
        • 2. get或set不是必须成对出现,任写其一就可以。如果不设置方法,则get和set的默认值为undefined
      • set :function (value){} | undefined
        • 是一种设置属性值的方法
        • 当设置值的时候触发的函数,设置的新值通过参数value拿到
      • get :function (){} | undefined
        • 当获取值的时候触发的函数
        • 通过返回值设置

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

原文地址:https://www.cnblogs.com/QQ-Monarch/p/7693050.html