Object构造函数的方法 之 Object.defineProperty

摘要:Object构造函数的方法 之 Object.defineProperty,直接在一个对象上定义一个新属性,或者修改一个已经存在的属性。Desc 参数目前提供两种形式:数据描述和存取器描述

Object构造函数的方法 之 Object.defineProperty

Object.defineProPerty( obj, prop,desc )
直接在一个对象上定义一个新属性,或者修改一个已经存在的属性。
Desc 参数目前提供两种形式:数据描述和存取器描述


数据描述:
Object.defineProperty(obj,’newKey',{
  value:'HY', // 设置属性的值
  writable:false // 值是否可以重写。true | false
  enumerable:false // 目标属性是否可以被枚举。 true | false (使用for...in或Object.keys())
  configurable:false // 目标属性是否可以被删除或是否可以再次修改特性 true | false
})


存取器描述:

注:当使用了getter或setter方法,不允许使用writable和value这两个属性
const obj = {}
let initValue = 123
Object.defineProperty(obj,’newKey',{
  get:function(){
    return initValue
  },
  set:function(value){
    initValue = value
  }
})
console.log(obj.newKey ) // 123 获取值 调用get
obj.newKey = 456 // 设置值 调用set
console.log(obj.newKey) // 456


JavaScript Demo: Object.defineProperty()

const object1 = {};
Object.defineProperty(object1, 'property1', {
  value: 42,
  writable: false
});
object1.property1 = 77;
console.log(object1.property1); // 42


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_9054