侧边栏壁纸
博主头像
会飞的大象博主等级

爱运动的程序猿

  • 累计撰写 126 篇文章
  • 累计创建 158 个标签
  • 累计收到 0 条评论
标签搜索

目 录CONTENT

文章目录
js

js赋值问题

会飞的大象
2021-01-20 / 0 评论 / 0 点赞 / 479 阅读 / 0 字

js中使用=是地址引用,不是重新分配内存

对象拷贝的方法是一个难点,尤其是深拷贝。建议把代码都运行下,帮助理解拷贝。

一. json方法

  1. 适合情况:
     JSON对象的深度克隆。方法是先JSON.stringify() 转为json字符串, 再JSON.parse() 转为json数组

  2. 缺点:
      a. 如果你的对象里有函数, 函数无法被拷贝下来
      b. 无法拷贝copyObj对象原型链上的属性和方法

    x: 1,
    y: {
        a: 1,
        b: 0,
        c: [1, 2, 3]
    }
};

// 相同的引用

console.log(obj2 == obj); //true 直接复制只是复制对象的指针,还指向同一个对象

//不同的引用

console.log(obj3 == obj) //false  通过json方法复制后的地址不一样
console.log(obj3);

二. jQuery extend方法
jQuery.extend(object)

概述:
 扩展jQuery对象本身,用来在jQuery命名空间上增加新函数。

    x: 1,
    y: {
        a: 1,
        b: 0,
        c: [1, 2, 3]
    }
};
var obj2 = $.extend({}, obj);
console.log(obj2 == obj) //false  复制后的地址不一样
console.log(obj2);

0

评论区