博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js----深拷贝,浅拷贝
阅读量:5893 次
发布时间:2019-06-19

本文共 939 字,大约阅读时间需要 3 分钟。

浅拷贝

拷贝的是对象的索引地址,一个对象的数据发生变化时,另一个对象的数据也会发生改变 浅拷贝的方法:   1.对象时多层的情况下  a: Object.assign({},obj)//返回合并后的对象  b: $.extend({},obj)//返回合并后的对象  c: function copy(obj){
    var newObj = {};     for(var key in obj){
      newObj[key] = obj[key];     }     return newObj;   } -------------------------------
d: let a = {
  age: 1 } let b = a//不常用 a.age = 2 console.log(b.age) // 2

深拷贝

拷贝的是对象的值,一个对象的数据发生变化时,另一个对象的数据不会发生改变 深拷贝的方法:  1.对象时单层的情况下:   Object.assign({},obj)   扩展运算符...//注意:当对象是单层时,是深拷贝,当对象是多层时,第一层是深拷贝,第二层就是浅拷贝   var newObj = {...obj}  2.对象是单层或者多层的情况下   $.extend(true,{},obj)   JSON.parse(JSON.stringify(obj))//将对象先转为字符串,在转为对象

注意:

let a = {    age: 1}let b = {...a}a.age = 2console.log(b.age) // 1---------------------------------------------let a = {    age: undefined,    jobs: function() {},    name: 'yck'}let b = JSON.parse(JSON.stringify(a))console.log(b) // {  name: 'yck'}

 

转载于:https://www.cnblogs.com/SRH151219/p/10421841.html

你可能感兴趣的文章
Linux学习之CentOS(八)--Linux系统的分区概念
查看>>
主域控制器的安装与配置步骤与方法
查看>>
JavaScript---事件
查看>>
Android NDK入门实例 计算斐波那契数列一生成jni头文件
查看>>
c/c++性能优化--I/O优化(上)
查看>>
将HTML特殊转义为实体字符的两种实现方式
查看>>
jquery 保留两个小数的方法
查看>>
网站架构设计的误区
查看>>
iis 故障导致网站无法访问
查看>>
C++ 基础笔记(一)
查看>>
System.Func<>与System.Action<>
查看>>
asp.net开源CMS推荐
查看>>
csharp skype send message in winform
查看>>
MMORPG 游戏服务器端设计--转载
查看>>
《星辰傀儡线》人物续:“灭世者”、“疯狂者”、“叛逆者”三兄妹
查看>>
安装系统字体
查看>>
SILK 的 Tilt的意思
查看>>
Html学习笔记3
查看>>
批处理学习笔记8 - 深入学习For命令1
查看>>
微信支付开发(11) Native支付
查看>>