javascript实现深克隆的几种方法
1)普通函数实现
function cloneObject(obj) {if (obj === null || typeof obj !== 'object') {return obj;}var temp = obj.constructor(); // give temp the original obj's constructorfor (var key in obj) {temp[key] = cloneObject(obj[key]);}return temp; }var bob = {name: "Bob",age: 32};var bill = cloneObject(bob);bill.name = "Bill";console.log(bob);console.log(bill);
2)通过json方法实现
var bob = {name: "Bob",age: 32 };var bill = (JSON.parse(JSON.stringify(bob))); bill.name = "Bill";console.log(bob); console.log(bill);
3)jquery中的$.extend
var bob = {name: "Bob",age: 32 };var bill = $.extend(true, {}, bob); bill.name = "Bill";console.log(bob); console.log(bill);
转载于:https://www.cnblogs.com/hutuzhu/p/5332334.html
javascript实现深克隆的几种方法相关推荐
- JavaScript 获得对象的N种方法 [转]
JavaScript 获得对象的N种方法 [转] 方法如下: document.getElementById(ID) //获得指定ID值的对象 document.getElementsB ...
- JavaScript 数组遍历的五种方法(转)
转自:JavaScript 数组遍历的五种方法 这篇文章主要介绍了JavaScript 数组遍历的五种方法,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下 在使用 JavaS ...
- JavaScript数组去重的五种方法
JavaScript数组去重的五种方法 先简单准备一个数组,用于方法的实验: let array = [1,1,2,3,4,4,1,5,6,6,7,7,7]; console.log(`去重前的数组: ...
- JavaScript刷新当前页面的三种方法,载入新文档替换当前页面
通过JavaScript刷新当前页面的三种方法代码就可以简单的实现,首先我们来看三种刷新当前页的方法: reload() 方法; replace() 方法; 页面自动刷新; 方法1:reload() ...
- Javascript刷新页面的几种方法。
Javascript刷新页面的几种方法: 1 history.go(0) 2 location.reload() 3 location=location 4 location.assign(locat ...
- Javascript异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排 ...
- [转载]Javascript异步编程的4种方法
NodeJs的最大特性就是"异步" 目前在NodeJs里实现异步的方法中,使用"回调"是最常见的. 其实还有其他4种实现异步的方法: 在此以做记录 --- ht ...
- javascript中数组的22种方法
前面的话数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细 ...
- (转)javascript异步编程的四种方法
本文转自:http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 作者:阮一峰 本文仅仅作为个人mark ...
最新文章
- poj1419(最大独立集)
- 推荐11个构建和测试API的顶级工具
- python基础实例-Python入门基础知识实例,值得收藏!
- 【全文搜索引擎】Elasticsearch相关介绍与linux系统安装
- 理解vue赋值新属性
- C#中的CultureInfo类
- c++的STL--1概念通述
- Openstack平台搭建之第二天
- 日常踩坑:python新项目创建新的虚拟环境、pycharm无法安装install package工具、pip的缓存作用
- python实现excel数据透视_在pywin32中创建Excel数据透视缓存
- Emacs之删除整列操作
- shiro+springmvc+mybatis【转】
- 软件中断SWI的实现
- 初识app之产品需求分析文档设计
- flutter基础布局之 对话框Dialogs
- C语言求乘方、幂数、取余
- gre 填空13-30
- 【知识分享】10M宽带非10M
- 协方差矩阵的几何解释
- Java-- Maps