javascript中的浅拷贝和深拷贝例子
2016-07-26 16:36
274 查看
参考:
http://blog.csdn.net/yisuowushinian/article/details/45544343
1.js对象浅拷贝
简单的赋值就是浅拷贝。因为对象和数组在赋值的时候都是引用传递。赋值的时候只是传递一个指针。浅拷贝很容易,但是很多时候我们需要原样的把数组或者对象复制一份,在修改值的时候,不改变初始对象的值。
看下面的实例代码:
var a = [1,2,3];
var b =a ;
var test = {name:’xiaohong’, age:15};
var c = test;
console.log(a);
console.log(b);
console.log(test);
console.log(‘——————-‘);
b[0] =5;
c.age = 16;
console.log(a);
console.log(b);
console.log(test);
console.log(c);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
结果如下:
这里写图片描述
2.js对象深拷贝
因为对象相对较为复杂,所以我们先来看对数组的深拷贝的问题。
数组的深拷贝
//深拷贝
var a = [1,2,3];
var deepArry = [];
/**
* @param 被复制数组
* @param 新数组
*/
function deepCopy(arry1, arry2){
for(var i = 0,l= arry1.length;i
http://blog.csdn.net/yisuowushinian/article/details/45544343
1.js对象浅拷贝
简单的赋值就是浅拷贝。因为对象和数组在赋值的时候都是引用传递。赋值的时候只是传递一个指针。浅拷贝很容易,但是很多时候我们需要原样的把数组或者对象复制一份,在修改值的时候,不改变初始对象的值。
看下面的实例代码:
var a = [1,2,3];
var b =a ;
var test = {name:’xiaohong’, age:15};
var c = test;
console.log(a);
console.log(b);
console.log(test);
console.log(‘——————-‘);
b[0] =5;
c.age = 16;
console.log(a);
console.log(b);
console.log(test);
console.log(c);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
结果如下:
这里写图片描述
2.js对象深拷贝
因为对象相对较为复杂,所以我们先来看对数组的深拷贝的问题。
数组的深拷贝
//深拷贝
var a = [1,2,3];
var deepArry = [];
/**
* @param 被复制数组
* @param 新数组
*/
function deepCopy(arry1, arry2){
for(var i = 0,l= arry1.length;i
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- Python动态类型的学习---引用的理解
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 设计模式---状态模式在web前端中的应用
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法