JavaScript 中不可变数据结构(Immutable structures)和克隆(clone)

对象克隆是一个棘手的问题,它有很多边缘情况。原因很简单。对象维持内部状态有很多技巧及衍生品,但是很容易被滥用。

克隆对象是你应用程序正在发展的指示器,并且你有一个复杂的对象,你想要作为一个不变的值,即在保持先前状态的同时进行操作。

如果这个对象在你的控制范围之内,那么你很幸运。如果要进行一些重构,可能会让你重新考虑对象的结构和行为来完全避免问题。 继续阅读