方法一:

把原来对象的属性遍历一遍,赋给一个新的对象。

//深复制对象方法
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

方法二:

将对象序列化再解析回来,对象中如果有函数function则不能正确复制

var obj = {a:1,b:2}
var newObj = JSON.parse(JSON.stringify(obj));
newObj.a=3;
console.log(obj);
console.log(newObj);

方法三:

针对数组对象的方法,用数组方法concat一个空数组

var a=[1,2,3];
var b=a;
var c=[].concat(a);
a.push(4);
console.log(b);
console.log(c);

js如何复制一个对象?相关推荐

  1. js深度复制一个对象使用JSON.stringify是最好的办法吗

    转载自   js深度复制一个对象使用JSON.stringify是最好的办法吗 深度复制一个对象,看到很多种方法,最简单的是: var newObject = JSON.parse(JSON.stri ...

  2. js如何复制一个对象

    方法一:把原来对象的属性遍历一遍,赋给一个新对象 //深复制对象方法 var cloneObj = function (obj) {var newObj = {};if (obj instanceof ...

  3. js 深复制一个对象

    自定义 cloneObj 方法 //深复制对象 var cloneObj = function (obj) {var newObj = {};if (obj instanceof Array) {ne ...

  4. js实现复制html页面

    js实现复制html页面 复制html <h5>一.单选题请选择</h5><div class="pojo"><h7>1.fajfa ...

  5. js实现复制文本内容到剪切板

    js实现复制文本内容到剪切板 一.总结 一句话总结:就是document的execCommand('copy')方法 二.js实现复制文本内容到剪切板 直接上代码: 1 <script type ...

  6. 【转】js实现复制到剪贴板功能,兼容所有浏览器

    2019独角兽企业重金招聘Python工程师标准>>> 两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家 ...

  7. js如何生成一个对象,并转化为json字符串

    js如何生成一个对象,并转化为json字符串,很多人都会误写为: var ary = []; var obj = {}; for (var i = 0; i < 3; i++) {obj.nam ...

  8. java复制一个对象_Java中对象的复制

    假如说你想复制一个简单变量.很简单: 1 int n = 5;2 int m = n; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,doubl ...

  9. php如何复制一个对象,PHP中的对象复制及__clone() 函数

    在PHP中, 对象间的赋值操作实际上是引用操作 (事实上,绝大部分的编程语言都是如此! 主要原因是内存及性能的问题) , 比如 : [code lang="php"] class ...

  10. 【javascript】js实现复制、粘贴

    使用document.ExecCommand("copy")命令,官方文档,点我. 例如: <!DOCTYPE html> <html> <head& ...

最新文章

  1. antd 上传进度_antd vue upload组件使用customRequest上传文件显示文件上传进度
  2. centos7 oracle_Centos7主机名变成bogon的原因及解决方法
  3. Intel VMM-虚拟机监控器
  4. set集合判断集合中是否有无元素_JAVA 集合
  5. 如何在装有 macOS Monterey 的 Mac 上使用省电模式?
  6. 计算机系统缺陷,4.2 缺陷和测试计算机操作系统原理.pdf
  7. python秒网课_利用python完成大学刷课(从0到完成的思路)
  8. 基于BOW模型的图像检索
  9. ABBYY FineReader15最新免费下载安装地址激活2020注册机教程
  10. 华为路由器与交换机常用命令(20200618)
  11. Excel常用电子表格公式大全【汇总篇】
  12. 为了让你在“口袋奇兵”聊遍全球,java面试代码题
  13. 做独立站要做私域营销,做亚马逊更要做私域营销,Why?
  14. 香港理工大学,新设“元宇宙科技”专业
  15. 【爬虫笔记】关于Beautiful Soup 4
  16. 微信直播平台解决方案已准备好,请查收!
  17. win7下载python3.7.4_Python for windows 下载
  18. openmv c语言源码,【国外开源】STM32 机器人视觉摄像机OpenMV Cam设计(硬件+固件源码等)...
  19. 从数据中进行学习-基础知识
  20. 一年半前端工作经验试水杭州:我是如何拿下网易、阿里和滴滴 offer 的

热门文章

  1. MySQL数据备份与还原(mysqldump)
  2. 279. 自然数拆分
  3. 用最少的箭射爆全部气球
  4. 编译祁大神的iguana,大神就是大神.
  5. 鸿蒙系统安全模式,安全模式怎么连接wifi
  6. Windows启动配置数据(BCD)存储文件包含一些无效信息
  7. IM即时通讯开发之iOS版微信小视频功能
  8. 计算机安全模式win7,win7安全模式下怎么恢复系统
  9. 学会这几个.你就能成为bat脚本小子了...(转来看看的)
  10. JetBrain补丁