新闻中心

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

2025-10-30
浏览次数:
返回列表
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 更严格,它不仅阻止添加和删除属性,还禁止修改任何现有属性的值。

万相营造 万相营造

阿里妈妈推出的AI电商营销工具

万相营造 168 查看详情 万相营造
  • 不能添加新属性
  • 不能删除已有属性
  • 不能修改属性值(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() 的区别的详细内容,更多请关注其它相关文章!


# 相关文章  # 天宁区网站推广公司  # 银川网站建设产品  # 招SEO关键词优化写手  # 吕梁网站推广供应商家  # 汕尾留学网站推广  # 怎么写网站博客推广文案  # 本溪企业网站推广找哪家  # 阿图什手机网站建设  # 如何查看seo优化网站是否已降权  # 扬州房产推广招聘网站  # 中文网  # javascript  # 都能  # 有哪些  # 更受欢迎  # 它比  # 如何使用  # 怎么做  # 已有  # 递归  # 区别  # java 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: QQ邮箱网页版快速登录 QQ邮箱邮箱账号官方入口地址  优化Log4j2控制台输出性能:解决异步日志瓶颈  利用5118提升短视频内容效果_5118短视频关键词优化方法  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  SteamMachine定价或为699美元 大家想入手吗?  创客贴用户入口官网登录 创客贴网页版电脑版系统  sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统  蛙漫漫画免费阅读入口_蛙漫官方正版无广告纯净版  解决macOS上安装pyhdf时‘hdf.h’文件缺失的编译错误  晋江读书网页版在线登录 晋江读书电脑版官网  Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】  《GTA6》开发画面疑似泄露!这次可不是AI了  Typer应用中灵活处理命令行参数的令牌化与解析  印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】  HuggingFaceEmbeddings中向量嵌入维度调整的限制与理解  如何使用 Excel 发布器与 Power BI 分享 Excel 洞察  动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道  Lar*el 8 多关键词数据库搜索优化实践  QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  漫蛙2漫画入口 漫蛙正版网页漫画直达网址  智慧团建扫码登录入口 智慧团建扫码登录入口官网版​  蛙漫移动版在线看 蛙漫手机浏览器直达入口  Word2013如何插入视频和音频媒体_Word2013媒体插入的多媒体支持  自定义Bag-of-Words实现:处理带负号的词汇权重  c++如何实现单例设计模式_c++线程安全的单例模式写法  解决J*aScript中重复选择项的确认对话框显示问题  QQ官网正版登录链接 QQ在线登录入口最新  解决 MongoDB 聚合查询中对象数组 _id 匹配问题  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤  Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口  新手怎么开始学化妆 零基础化妆入门教程  优化HTML表单样式:解决输入框焦点跳动与元素间距问题  高德地图公交到站提醒失败如何解决 高德提醒权限设置  漫蛙官网正版漫画入口 漫蛙2官方网页登录地址  cad如何更改注释性对象的比例_cad注释性比例调整方法  ArrayList与LinkedList操作复杂度详解:遍历与修改  海棠账号登录入口_登录海棠账户同步阅读记录  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  Win11怎么合并任务栏图标 Win11开启任务栏合并减少图标占空间【方法】  J*aScript DOM操作:高效清空列表元素的策略与实践  电脑IP地址怎么查 查看本机IP地址的几种方法  Eclipse怎么运行工程_Eclipse工程运行配置说明  ArrayList与LinkedList核心操作的Big-O复杂度分析  ACG动漫视频网入口 ACG动漫*免费正版观看地址  向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程  Win11怎么关闭快速启动_Win11彻底关机设置教程  解决Flask中Quill编辑器内容提交失败及TypeError的指南  在J*a中如何捕获IndexOutOfBoundsException_索引越界异常防护方法说明  淘宝支付提示失败如何解决 淘宝支付流程优化方法 

搜索