js如何复制一个对象?
方法一:
把原来对象的属性遍历一遍,赋给一个新的对象。
//深复制对象方法
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如何复制一个对象?相关推荐
- js深度复制一个对象使用JSON.stringify是最好的办法吗
转载自 js深度复制一个对象使用JSON.stringify是最好的办法吗 深度复制一个对象,看到很多种方法,最简单的是: var newObject = JSON.parse(JSON.stri ...
- js如何复制一个对象
方法一:把原来对象的属性遍历一遍,赋给一个新对象 //深复制对象方法 var cloneObj = function (obj) {var newObj = {};if (obj instanceof ...
- js 深复制一个对象
自定义 cloneObj 方法 //深复制对象 var cloneObj = function (obj) {var newObj = {};if (obj instanceof Array) {ne ...
- js实现复制html页面
js实现复制html页面 复制html <h5>一.单选题请选择</h5><div class="pojo"><h7>1.fajfa ...
- js实现复制文本内容到剪切板
js实现复制文本内容到剪切板 一.总结 一句话总结:就是document的execCommand('copy')方法 二.js实现复制文本内容到剪切板 直接上代码: 1 <script type ...
- 【转】js实现复制到剪贴板功能,兼容所有浏览器
2019独角兽企业重金招聘Python工程师标准>>> 两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家 ...
- js如何生成一个对象,并转化为json字符串
js如何生成一个对象,并转化为json字符串,很多人都会误写为: var ary = []; var obj = {}; for (var i = 0; i < 3; i++) {obj.nam ...
- java复制一个对象_Java中对象的复制
假如说你想复制一个简单变量.很简单: 1 int n = 5;2 int m = n; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,doubl ...
- php如何复制一个对象,PHP中的对象复制及__clone() 函数
在PHP中, 对象间的赋值操作实际上是引用操作 (事实上,绝大部分的编程语言都是如此! 主要原因是内存及性能的问题) , 比如 : [code lang="php"] class ...
- 【javascript】js实现复制、粘贴
使用document.ExecCommand("copy")命令,官方文档,点我. 例如: <!DOCTYPE html> <html> <head& ...
最新文章
- antd 上传进度_antd vue upload组件使用customRequest上传文件显示文件上传进度
- centos7 oracle_Centos7主机名变成bogon的原因及解决方法
- Intel VMM-虚拟机监控器
- set集合判断集合中是否有无元素_JAVA 集合
- 如何在装有 macOS Monterey 的 Mac 上使用省电模式?
- 计算机系统缺陷,4.2 缺陷和测试计算机操作系统原理.pdf
- python秒网课_利用python完成大学刷课(从0到完成的思路)
- 基于BOW模型的图像检索
- ABBYY FineReader15最新免费下载安装地址激活2020注册机教程
- 华为路由器与交换机常用命令(20200618)
- Excel常用电子表格公式大全【汇总篇】
- 为了让你在“口袋奇兵”聊遍全球,java面试代码题
- 做独立站要做私域营销,做亚马逊更要做私域营销,Why?
- 香港理工大学,新设“元宇宙科技”专业
- 【爬虫笔记】关于Beautiful Soup 4
- 微信直播平台解决方案已准备好,请查收!
- win7下载python3.7.4_Python for windows 下载
- openmv c语言源码,【国外开源】STM32 机器人视觉摄像机OpenMV Cam设计(硬件+固件源码等)...
- 从数据中进行学习-基础知识
- 一年半前端工作经验试水杭州:我是如何拿下网易、阿里和滴滴 offer 的