Skip to main content

Command Palette

Search for a command to run...

Object.freeze() vs Object.seal() vs Object.preventExtensions()

Published
1 min read
Object.freeze() vs Object.seal() vs Object.preventExtensions()

今日详解ES5相关知识,区分下这三者的关系

Object.freeze()

冻结一个对象。这实际上是使对象不可变的最严格的方法。它执行以下操作:

  • 防止添加新属性
  • 不允许删除现有属性
  • 不允许更改的直接属性
  • 可以修改子对象的属

image.png

Object.seal()

封闭对象,防止向对象添加新属性。它执行以下操作:

  • 允许更改对象的现有属性
  • 防止添加新属性
  • 不允许删除现有属性

image.png

Object.preventExtensions()

防止向对象添加新属性(即防止将来扩展对象)。它执行以下操作:

  • 允许更改、删除对象的现有属性
  • 防止添加新属性

image.png

结语: 所有三种方法都处理对象的不变性,这限制了向它添加新属性。

image.png

87 views

More from this blog

解决Virmach Vps, 谷歌搜索频繁人机验证问题

virmach机器速度还可以,但谷歌搜索的时候频繁出现“reCAPTCHA”人机验证,实在无解.. 查得问题是 virmach大部分是 RN、CC机房 IP段可能处于Google黑名单...、 1. 申请IPV6隧道 virmach并不自带ipv6, 则使用IPv6 隧道。 申请 https://tunnelbroker.net [一个账号可以申请 5 个隧道] 注册登陆。 在左侧的 User Functions 中,点击 Create Regular Tunnel. IPv4 E...

Dec 9, 20211 min read287
解决Virmach Vps, 谷歌搜索频繁人机验证问题
L

lolis

12 posts