我有一个包含大量数据的大对象.我想在其他变量中克隆它.当我设置实例B的一些参数时,原始对象中的结果相同:
var obj = {a: 25, b: 50, c: 75};
var A = obj;
var B = obj;
A.a = 30;
B.a = 40;
alert(obj.a + " " + A.a + " " + B.a); // 40 40 40
Run Code Online (Sandbox Code Playgroud)
我的输出应该是25 30 40.任何想法?
编辑
感谢大家.我改变了破坏的代码,这是我的结果:
Object.prototype.clone = Array.prototype.clone = function()
{
if (Object.prototype.toString.call(this) === '[object Array]')
{
var clone = [];
for (var i=0; i<this.length; i++)
clone[i] = this[i].clone();
return clone;
}
else if (typeof(this)=="object")
{
var clone = {};
for …Run Code Online (Sandbox Code Playgroud)