javascript - 什么时候我应该更喜欢克隆而不是 JavaScript 中的引用?

标签 javascript performance

目前我正在编写一个小应用程序,并想到了这一点,我认为克隆一个对象而不是使用引用会更聪明。

我这样做的原因是因为我正在列表中收集对象。稍后我将仅使用此列表,因为它是模型的一部分。该引用不是我需要的东西,我想避免引用列表中的外部对象,因为我不希望有人构建一个构造,在该构造中可以从代码中不经意的地方更改模型。 (模型中信息的完整性非常重要。)

另外,我认为当我不使用引用时,我会从中获得更好的性能。

所以我的总体问题仍然是:我什么时候应该更喜欢克隆而不是 JavaScript 中的引用?

谢谢!

最佳答案

如果稳定性很重要,那么就克隆它。如果测试表明这是瓶颈,请考虑将其更改为引用。如果它是一个瓶颈,我会感到非常惊讶,除非你有一个非常复杂的对象,并且非常频繁地来回传递(如果你这样做,这可能表明设计不好)。

还要记住,您只能做这么多来避免其他开发人员陷入愚蠢的境地。如果他们真的想破坏你的 API,他们可以通过复制源代码或在运行时修改它来用他们自己的函数替换你的函数。如果您记录了该对象不得更改,那么优秀的开发人员(是的,有一些)将遵循该规则。

就其值(value)而言,我在自己的项目中使用了这两种方法。对于不会传递太多的小结构,我为了稳定性而制作了副本,而对于较大的数据(例如,可能在每帧上传递的 3D 顶点数据),我不复制。

关于javascript - 什么时候我应该更喜欢克隆而不是 JavaScript 中的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19079524/

相关文章:

javascript - 将 JSON 元素拆分为单独的元素并将任何新元素添加到下拉列表的选项中?

javascript - 性能损失 JavaScript 回调函数

javascript - 在进行繁重的 JavaScript 处理时强制 HTML5 Canvas 重绘?

mysql - 如何提高MySQL子查询性能

Android:随着时间的推移将数据库加载到内存与查询

performance - Haskell Warp Performance vs Erlang Misultin 测试(如何加载文件内容一次并提供响应)

javascript - 套接字 io get 未定义

javascript - 如何每分钟更新一次javascript函数并更新图表?

c# - C++ 比 C# 快多少?

php - 如何提高频繁插入率的MySQL查询性能?