智能克隆
深度克隆JavaScript对象(包括其直接原型),而不会无意间从全局原型中复制方法和值。 还可以在新创建的对象中复制循环关系。
安装
npm install smartclone
用法
var smartClone = require ( "smartclone" ) ;
var clonedObject = smartClone ( { "myProperty" : "myValue!" ) ;
基本原理
我们经常被告知,使用for... in对象迭代是不明智的做法,但是这种假设常常使我们无法利用原型继承为我们提供的功能。 例如...
典型的对象克隆确实非常昂贵-您必须遍历该对象,测试值,将其写入新对象等。如果对象太深,则会使堆栈崩溃-如果对象具有循环引用,则我需要清理它们。†
如果您想快速复制一个对象,以便可以安全地暂时覆盖属性,则可以使用JS的原型链来提供近似的写