Objct.defineProperty,Object.defineProperties

132 阅读1分钟

应用场景,用来新增或设置对象属性

用法:

      Object.defineProperty('对象名称',
          '对象要操作的属性名称(新增或修改都可以),
          '第三个参数一个对象'{
              value:值,
              writable:是否可以改写,//布尔
              enumerable:是否可枚举,(可循环,不会报错)
              configurable:是否可删除(如果删除不报错,只是属性还在)
              });
      

    Object.defineProperty('对象名',
         "要操作的属性",
         {
         set function(newVal){
             console.log(newVal)//设置触发
         },
         get(){
         //取值触发
         }
         })

上两种方法不能并存

还有一种,可以同时设置多个对象属性

Object.defineProperties('对象名',{
   '需要操作的属性名称':{
           setget函数或  value重新赋值
       }
   })