美文网首页
js如何复制一个对象?

js如何复制一个对象?

作者: 栀子花wish | 来源:发表于2017-05-23 23:01 被阅读0次

<h5>方法一:把原来对象的属性遍历一遍,赋给一个新的对象。</h5>
<pre>
//深复制对象方法
var cloneObj = function (obj) {
var newObj = {};
if (obj instanceof Array) {
newObj = [];
}
for (var key in obj) {
var val = obj[key];
//newObj[key] = typeof val === 'object' ? arguments.callee(val) : val; //arguments.callee 在哪一个函数中运行,它就代表哪个函数, 一般用在匿名函数中。
newObj[key] = typeof val === 'object' ? cloneObj(val): val;
}
return newObj;
};
//测试
var obj = {a:function(){console.log(this.b.c)},b:{c:1}},//设置一个对象
newObj = cloneObj(obj);//复制对象
newObj.b.c=2;//给新对象赋新值
obj.a();//1,不受影响
newObj.a();//2
</pre>
<h5>方法二:
将对象序列化再解析回来,对象中如果有函数function则不能正确复制</h5>
<pre>
var obj = {a:1,b:2}
var newObj = JSON.parse(JSON.stringify(obj));
newObj.a=3;
console.log(obj);
console.log(newObj); </pre>
<h5>方法三:
针对数组对象的方法,用数组方法concat一个空数组</h5>
<pre>
var a=[1,2,3];
var b=a;
var c=[].concat(a);
a.push(4);
console.log(b);
console.log(c);
</pre>

相关文章

  • js中对象的复制,浅复制(浅拷贝)和深复制(深拷贝)

    在js中,我们经常复制一个对象,复制数据,那么就会有人问了,怎么复制,今天鹏哥就带来js中的复制方法。 JS中对象...

  • 对JavaScript的理解

    如何复制一个Js对象?① 通过 JSON 对象提供的 stringify 和 parse 方法组合使用的方式实现 ...

  • js如何复制一个对象?

    方法一:把原来对象的属性遍历一遍,赋给一个新的对象。 //深复制对象方法var cloneObj = funct...

  • JS走过的第一个大坑

    JS浅复制问题:复制对象或者数组时,直接把对象复制给另一个变量,其实两个对象包括内在属性都是指向同一块内存地址,导...

  • js 复制一个对象

    1.将对象序列化再解析回来,对象中如果有函数function则不能正确复制 2.把原来对象的属性遍历一遍,赋给一个...

  • js 对象小结

    对象的深复制和浅复制 深复制: 在对象的json是安全的情况下,使用varnewObj=JSON.parse(JS...

  • 使用原生js实现复制对象及扩展

    使用原生js实现复制对象,扩展对象,类似JQuery中的extend()方法

  • 双人扑克-技术文档(3)11.12-11.18.md

    js对象的复制 js字符串截取函数slice()、substring()、substr() 相关属性:slice(...

  • 浅谈对象

    1、复制对象JavaScript初学者最常见的问题之一就是如何复制一个对象。思考一下这个对象: 如何准确的表示my...

  • js 对象深度复制

    js 对象复制是地址传递, 而不是值传递, 可以使用如下方法进行``深度复制`

网友评论

      本文标题: js如何复制一个对象?

      本文链接:https://www.haomeiwen.com/subject/mytnxxtx.html