js深拷贝和浅拷贝
2017-01-16 10:49
155 查看
浅拷贝:
在有指针的情况下,浅拷贝只是增加一个指针,指向已经存在的内存。
深拷贝:
增加一个指针并且申请一个新内存,使这个增加的指针指向新的内存。
采用深拷贝,释放内存时就不会出现在浅拷贝时重复释放同一个内存的错误。
实例:
在有指针的情况下,浅拷贝只是增加一个指针,指向已经存在的内存。
深拷贝:
增加一个指针并且申请一个新内存,使这个增加的指针指向新的内存。
采用深拷贝,释放内存时就不会出现在浅拷贝时重复释放同一个内存的错误。
实例:
//被改变 - 引用类型是对象 var arr=[1,2,3,4,5] var arr1=arr; console.log(arr) arr1[1]=6; //原arr已被改变 console.log(arr) //原arr已被改变
//没有被改变 - 使用一些方法完全复制 //利用 arr.slice(0) 或 arr.concat() 完整创建一个新数组 var arr=[1,2,3,4,5] var arr1=arr.slice(0); console.log(arr) arr1[1]=6; //原arr没有改变 console.log(arr) //原arr没有改变
//没有被改变- 数据类型是值还不是对象的时候 //引用数据类型是直接是一个值的情况下没有浅拷贝和深拷贝之分 //但是对象有 //非对象的变量和内存直接放在同一内存中,没有指针一说 var arr=1; var arr1=arr; arr1=10; console.log(arr); //1 没有被改变,因为引用数组类型是值
相关文章推荐
- js之判断变量类型
- JavaScript Cookie
- icheck.min.js 选中效果
- redhat5安装phantomjs
- js学习笔记:null与undefined
- JavaScript日期选择功能示例
- JSON对象互相转换操作
- JSONArray 转换日期总是当前时间
- JS代码压缩混淆工具使用说明
- 谈一谈js的内存分配
- ES6学习资料
- js封装from表单数据为json串进行ajax提交
- javascript Map结构
- js局部刷新
- js中的instanceof运算符
- package.json 里 devDependencies和dependencies的区别
- 6-正则表达式例子(总结)
- JavaScript实现的select点菜功能示例
- 6-正则表达式详细+数组note
- D3 数据可视化的简单例子