js深拷贝和浅拷贝
JS 拷贝
2023-09-11 14:17:02 时间
浅拷贝:
在有指针的情况下,浅拷贝只是增加一个指针,指向已经存在的内存。
深拷贝:
增加一个指针并且申请一个新内存,使这个增加的指针指向新的内存。
采用深拷贝,释放内存时就不会出现在浅拷贝时重复释放同一个内存的错误。
实例:
//被改变 - 引用类型是对象 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+CSS3 360度全景图插件 - Watch3D.js
- JS框架_(JQuery.js)网页文字评论弹幕
- JS框架_(JQbar.js)柱状图动态百分比进度条特效
- JS框架_(Vue.js)带有星期日期的数字时钟
- JS框架_(JQuery.js)带阴影贴纸标签按钮
- JS框架_(Bootstrap.js)实现简单的轮播图
- Knockout.Js官网学习(style绑定、attr绑定)
- CentOS安装Node.js简单教程
- [Ember] Creating Your First Ember.js Project with Ember-CLI
- Google Pagespeed,自动压缩优化JS/CSS/Image
- [AWS Lambda] Convert a Express node.js app to serverless
- 让Visual Studio 也支持JS代码折叠 —— 续 [ Visual Studio | Js | ScriptOutline | SmallOutline ]
- 原生js实现随机验证码HTMl-JS
- three.js(JS 三维模型库)介绍和入门
- JS对象拷贝:深拷贝和浅拷贝
- Vue2.js:TypeScript 支持Prop属性类型标注
- babel配置项目目录支持转换es6语法,引入非项目目录js后,引入Js转换无效
- React.js初探
- js 的强制 类型 转换cast, 伪对象?
- js css样式操作代码(批量操作)
- JS判断相等或者不等于(==、===、!=、!==)运算符