Object.freeze 对性能有什么提升吗?

发布于 2022-09-30 23:08:46 字数 167 浏览 22 评论 0

看到 js耗时不值得的坑,数组删数组

中删除数组元素时 使用了Object.freeze

在删除数组元素时,冻结一个数组有什么用?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终难遇 2022-10-07 23:08:46

因为你贴的这篇文章是胡说八道的。

为了“解决”卡,用了 Object.freeze();然后“解冻”居然还能用 JSON.parse(JSON.stringify())??

能写出这么牛哔的写法也真是人才了。你可千万别学它,你需要的是 Immutable。


作者没有上下文语境,但我猜是是 Vue 2.X 项目。

Vue 2.X 实现数据监听和双向绑定依赖于遍历执行 Object.defineProperty 实现,当你的列表很大、再加上元素的对象属性比较复杂时,因为这个带来的开销就会很大。

所以用 Object.freeze 的作用是告诉 Vue 别去遍历执行 Object.defineProperty,省下了这部分开销。但带来的缺点是数据变化就不能自动刷新视图,需要你手动执行刷新操作。

而如果你这个列表不需要体现在视图上的话,压根就不应该放到 $data 里,也就不需要调用 Object.freeze 了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文