zoukankan      html  css  js  c++  java
  • js的浅克隆和深克隆

    谈一谈个人对js浅克隆和深克隆的区别。

    之前也看到很多博客在写,当然也有写的非常好的,但是个人觉得既然要分享就不要写的太深奥,尽量以简单易懂为主。

    浅克隆其实就是 对象A = 对象B;如果改变了对象B里面的属性和方法会同时改变对象A里面的方法,反之对象A改变同样会影响对象B。A和B对象指向的是同一个引用地址。

    深克隆可以理解为继承的一种方式,对象A 赋值给对象B,但是对象B改变了属性和方法不会影响到对象A。A和B对象指向的不是同一个引用地址。

    <script>
    // 浅克隆
    	var a = {"name": "张三"};
    	var b = a;
    	b.name = "李四";
    	console.log(a.name); //李四
    	console.log(b.name); //李四
    	a.age = 18;
    	console.log(a.age); // 18
    	console.log(b.age); // 18
    	console.log(a === b); //true
    // 深克隆
        var c = {};
    	for (var i in a) {
    	  c[i] = a[i];
    	};
    	console.log(c);
    	console.log(a === c); //false
    	c.age = 20;
    	console.log(a.age); // 18
    	console.log(c.age); // 20
    	console.log(a === c); //false
    </script>
    

      

  • 相关阅读:
    element-ui 刷新页面不能自动打开对应的菜单
    cookie
    cdn
    为已有文件添加 d.ts 声明
    WiFi 漫游过程
    Wifi 4 way handshake 四次握手
    WiFi association request/response
    WiFi beacon
    WiFi Auth/Deauth帧
    WiFi probe request/response
  • 原文地址:https://www.cnblogs.com/alvin553819/p/7985832.html
Copyright © 2011-2022 走看看