gpt4 book ai didi

javascript - Object.freeze() 不卡住传递的对象中的对象有什么好处?

转载 作者:可可西里 更新时间:2023-11-01 02:54:38 25 4
gpt4 key购买 nike

我在 MDN 上学习了更多关于 JavaScript 的 Object 构造函数的方法,我注意到 Object.freeze's description 的最后一句话阅读:

Note that values that are objects can still be modified, unless they are also frozen.

这样的行为似乎应该是自愿的。必须以递归方式手动卡住卡住对象的对象到底有什么好处?

如果我要卡住一个对象,为什么我希望它里面的对象仍然是可变的?

最佳答案

我认为如果递归是默认策略,一些复杂的对象将无法按预期运行。考虑以下情况:

<div id="root">
<div id="stem">
<div id="leaf>
</div>
</div>
</div>

出于某种原因我想卡住stem,所以我写了这些代码:

Object.freeze(document.getElementById('stem'));

如果它递归地卡住, 也会被卡住,看起来没问题:如果我想卡住,我也想卡住它的 child 。

但等等,请注意 stem 有另一个属性 -- 它也有 parentElement。那么会发生什么呢?当我卡住 stem 时,我也会卡住 stem.parentElementstem.parentElement.parentElement...这绝不是我想要的。

关于javascript - Object.freeze() 不卡住传递的对象中的对象有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21846050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com