Object.defineProperty()属性介绍

  对象是由多对key/value组成得无序集合,通过object.key=value来设置属性外,还可通过Object.defineProperty定义新属性或修改原有的属性。

  语法:Object.defineProperty(obj, prop, descriptor):

     参数:

      1 obj:必需。目标对象
      2 prop:必需。需定义或修改的属性的名字
      3 descriptor:必需。目标属性所拥有的特性
  
对象已有的属性添加特性描述
 Object.defineProperty(obj,"test",{
    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。
 });

  注意:一旦使用Object.defineProperty给对象添加属性,那么如果不设置属性的特性,那么configurable、enumerable、writable这些值都为默认的false。

猜你喜欢

转载自www.cnblogs.com/xuxiaoqiangAndHM/p/10781104.html