js 使用Object.defineProperty为对象定义属性

使用Object.defineProperty为对象添加属性

let person = {name:'name',sex:'male'};
Object.defineProperty(person,'age',{value:18});
  • 默认不会被枚举,使用Object.keys(person)将获得[‘name’,‘sex’]。以下写法使之可枚举
Object.defineProperty(person,'age',{value:18,enumerable:true});
  • 默认不可修改,使用person.age=19无法修改属性值。以下写法使之可改
Object.defineProperty(person,'age',{value:18,writable:true});
  • 默认不可删除,使用delete person.age无法删除属性。以下写法使之可删
Object.defineProperty(person,'age',{value:18,configurable:true});
  • 实现属性读写器
let number = 18;
Object.defineProperty(person,'age',{
	get() {
		return number;
	},
	set(value) {
		number = value;
	}
});

posted on 2022-04-11 22:38  路过君  阅读(48)  评论(0编辑  收藏  举报

导航