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   路过君  阅读(50)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
历史上的今天:
2020-04-11 spring 启动时自动运行
2020-04-11 spring cloud oauth2授权服务 默认tokenService配置源码
2020-04-11 spring cloud 搭建oauth2授权服务 使用redis存储令牌
2020-04-11 spring cloud oauth2授权服务 clientDetails配置源码
2020-04-11 spring 验证框架
2020-04-11 IDEA 插件整理
2020-04-11 spring security笔记 默认登陆页面源码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示