J*aScript 对象冻结:Object.freeze() 与 Object.seal() 的区别


Object.seal()密封对象,禁止增删属性但可修改值;Object.freeze()冻结对象,禁止增删改属性及描述符,实现完全不可变,二者均不递归处理嵌套属性。

javascript 对象冻结:object.freeze() 与 object.seal() 的区别

J*aScript 提供了多种方式来限制对象的修改,其中 Object.freeze()Object.seal() 是两个重要的方法。它们都能防止对象被随意更改,但作用程度不同。

Object.seal():密封对象,禁止增删属性

Object.seal() 方法会封闭一个对象,阻止新属性被添加,同时阻止已有属性被删除。但允许修改现有属性的值。

  • 不能添加新属性
  • 不能删除已有属性
  • 可以修改已有属性的值
  • 属性描述符不能更改(configurable: false)

示例:

const obj = { name: 'Alice', age: 25 };
Object.seal(obj);

obj.name = 'Bob';        // ✅ 允许
obj.city = 'Beijing';    // ❌ 无效,无法添加
delete obj.age;          // ❌ 无效,无法删除

console.log(obj); // { name: 'Bob', age: 25 }

Object.freeze():冻结对象,完全不可变

Object.freeze()seal 更严格,它不仅阻止添加和删除属性,还禁止修改任何现有属性的值。

Jaaz Jaaz

开源的AI设计智能体

Jaaz 216 查看详情 Jaaz
  • 不能添加新属性
  • 不能删除已有属性
  • 不能修改属性值(writable: false)
  • 不能重新配置属性(如 configurable、enumerable)

示例:

const obj = { name: 'Alice', age: 25 };
Object.freeze(obj);

obj.name = 'Bob';        // ❌ 无效(严格模式下报错)
obj.city = 'Beijing';    // ❌ 无效
delete obj.age;          // ❌ 无效

console.log(obj); // { name: 'Alice', age: 25 }

关键区别总结

操作 普通对象 Object.seal() Object.freeze()
添加属性
删除属性
修改属性值
修改属性描述符

注意:两者都只作用于对象自身,不处理深层嵌套属性。若需深度冻结,需递归调用 freeze。

基本上就这些。根据是否允许修改属性值来选择 seal 或 freeze。

以上就是J*aScript 对象冻结:Object.freeze() 与 Object.seal() 的区别的详细内容,更多请关注其它相关文章!


# java  # 区别  # 递归  # 已有  # 中特  # 如何实现  # 计算方法  # 文件上传  # javascript  # 日本亚马逊seo  # 医院网站建设政策  # 矩阵营销推广厂家代理  # 湖南抖音关键词排名厂家  # 中华建设杂志社网站  # 新站网站推广技巧  # 宿州seo公司选择21火星  # 重庆360营销推广方案  # 环保设备网站seo优化案例  # 企业需要建设的网站有  # 中文网  # 相关文章  # 都能  # 特殊字符 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 《i莞家》修改昵称方法  Golang如何实现HTTP请求重试机制_Golang HTTP请求错误处理策略  《环球网校》设置报考省市方法  《全民k歌》网页版最新登录入口一览  MacBook Pro词典使用指南  Windows 11怎么删除恢复分区_Windows 11使用Diskpart命令强行删除分区  惠普电脑BIOS界面看不懂怎么办_HP电脑BIOS功能选项解读与设置  HTML中多图片上传与预览:解决ID冲突的专业指南  使用AI在VS Code中将代码从一种语言翻译成另一种  J*a中为什么强调组合优于继承_组合模式带来的灵活性与可维护性解析  智慧职教mooc平台登录网址 智慧职教mooc官网直达  海棠书屋官方在线书籍入口 海棠书屋文学作品浏览官网链接  如何自定义苹果手机铃声  响应式设计中动态背景颜色条的实现指南  抄漫画官网防走失地址_抄漫画最新漫画完整版阅读入口  汽水音乐官方网站登录入口_汽水音乐网页版进入链接  微信注销后银行卡解绑了吗_微信注销后银行卡解绑状态  如何通过settings.json个性化您的VS Code体验  Python csv 模块处理非字符串数据:列表写入 CSV 文件的机制解析  申通快递物流信息查询 申通快递包裹状态追踪  J*a实现任务清单管理_集合框架综合入门练手  《原神》月之一版本新增书籍一览  小米倒班助手添加日历提醒  C++ priority_queue怎么用_C++优先队列底层实现与自定义比较器  Windows Audio服务启动失败怎么办_电脑没声音的终极服务修复法【修复】  Google Cloud Functions 时区处理指南:理解与最佳实践  Win11便笺在哪打开 Win11桌面便笺(Sticky Notes)使用方法【详解】  中通快递官网指定查询 中通快递单号查询平台入口  大熊猫抓取竹子的“大拇指”其实是什么?蚂蚁庄园课堂今天答案最新11月30日  mysql如何回滚事务_mysql ROLLBACK事务回滚方法  《随手记》启用语音备注方法  使用VS Code调试Python代码:从入门到精通  支付宝登录刷脸不是本人如何解决  优化Asyncio嵌套函数调度:使用生产者-消费者模式实现并发流处理  Google Drive API服务器端访问指南:服务账户认证详解  C++ cast类型转换总结_C++ reinterpret_cast与const_cast的使用  b站网页版入口 哔哩哔哩官方网站直接进入  J*aScript中高效处理用户输入:从Keyup事件到表单提交的优化实践  顺丰官方查单号入口 顺丰快递单号查询官网入口  126邮箱网页在线登录2025_126邮箱网页版入口官方地址  虫虫助手如何更新游戏  word邮件合并怎么插入个性化图片_Word邮件合并插入个性化图片方法  英国搜索:多数英国人认为语言搜索是未来搜索  AngularJS动态内容中DOM元素查找的时序问题及$timeout解决方案  《知到》打卡课程方法  《海豚家》注销账号方法  c++如何使用std::thread::join和detach_c++线程生命周期管理  如何在CSS中使用absolute实现登录弹窗居中_transform translate结合  告别阻塞等待:如何使用GuzzlePromises优雅处理PHP异步操作,提升应用响应速度  Go语言中方法与接收器:指针和值类型的调用机制详解 

 2025-10-30

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.