雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

禁止添加属性、封闭对象、冻结对象的 API

2024-09-21 16

1. 前言2. 禁止添加属性的 API3. 封闭对象的 API 操作4. 冻结对象的 API 操作

1. 前言


除了设置对象的属性特征,对属性进行控制,系统也提供了一些简化的 API 来进行属性控制

2. 禁止添加属性的 API


// 禁止在对象中添加属性Object.preventExtensions(user)// 无法给对象新增属性// 在非严格模式下不会抛出错误,在严格模式下会抛出错误// user.site = 'doc.itqaq.com'// 判断是否允许可以往对象中添加属性if (Object.isExtensible(user)) {    user.site = 'www.itqaq.com'}

3. 封闭对象的 API 操作


封闭对象: 不能添加和删除属性,也不能修改对象的属性特征。会自动设置属性特征 configurable: false

// 封闭对象Object.seal(user)// 判断对象是否处于封闭状态if (!Object.isSealed(user)) {    user.site = 'add'    delete user.age}

4. 冻结对象的 API 操作


封闭对象: 无法添加、删除、修改属性值,也不能修改对象的属性特征。自动修改属性特征 writable: false,configurable: false

// 冻结对象Object.freeze(user)// 判断对象有没有被冻结 true 已冻结if (!Object.isFrozen(user)) {    user.site = 'add'    user.name = 'update'    delete user.age}
更新于:18天前
赞一波!

文章评论

评论问答