最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript中深拷贝和浅拷贝的区别介绍

来源:动视网 责编:小采 时间:2020-11-27 19:29:55
文档

javascript中深拷贝和浅拷贝的区别介绍

javascript中深拷贝和浅拷贝的区别介绍:本篇文章给大家带来的内容是关于javascript中深拷贝和浅拷贝的区别介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。本文解释javascript中深拷贝和浅拷贝的区别。浅拷贝/Shallow Copy浅拷贝指拷贝了引用值。var original
推荐度:
导读javascript中深拷贝和浅拷贝的区别介绍:本篇文章给大家带来的内容是关于javascript中深拷贝和浅拷贝的区别介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。本文解释javascript中深拷贝和浅拷贝的区别。浅拷贝/Shallow Copy浅拷贝指拷贝了引用值。var original
 本篇文章给大家带来的内容是关于javascript中深拷贝和浅拷贝的区别介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

本文解释javascript中深拷贝和浅拷贝的区别。

浅拷贝/Shallow Copy

浅拷贝指拷贝了引用值。

var original = {"prop1" : "Prop1", "prop2" : "prop2"};
console.log(JSON.stringify(original));
// {"prop1" : "Prop1", "prop2" : "prop2"}

var shallowCopy = original;
console.log(JSON.stringify(shallowCopy));
// {"prop1" : "Prop1", "prop2" : "prop2"}

shallowCopy.prop1 = "ChangedProp1";

console.log(JSON.stringify(original));
// {"prop1" : "ChangedProp1", "prop2" : "prop2"}
console.log(JSON.stringify(shallowCopy));
// {"prop1" : "ChangedProp1", "prop2" : "prop2"}

https://smoothprogramming.com...

注意:

  • 浅拷贝中,原始值和副本共享同样的属性。

  • 浅拷贝只拷贝了对象引用。

  • 浅拷贝中如果修改了拷贝对象会影响到原始对象,反之亦然。

  • js中,数组和对象的赋值默认为浅拷贝。

  • 深拷贝/Deep Copy

    深拷贝指递归的复制对象的属性给新对象。jquery中我们使用$.extend去进行深拷贝。

    $.extend(deepCopy, target, object1, [objectN] )

    第一个参数传入true,指明此为深拷贝,target为目标对象,object1,原对象。

    var original = {"prop1" : "Prop1", "prop2" : "prop2"};
    console.log(JSON.stringify(original));
    // {"prop1" : "Prop1", "prop2" : "prop2"}
    
    var deepCopy = $.extend(true, {}, original);
    console.log(JSON.stringify(deepCopy));
    // {"prop1" : "Prop1", "prop2" : "prop2"}
    
    deepCopy.prop1 = "ChangedProp1";
    
    console.log(JSON.stringify(original));
    // {"prop1" : "Prop1", "prop2" : "prop2"}
    console.log(JSON.stringify(deepCopy));
    // {"prop1" : "ChangedProp1", "prop2" : "prop2"}

    https://smoothprogramming.com...


    注意:

  • 深拷贝中,副本和原对象不共享属性

  • 深拷贝递归的复制属性

  • 深拷贝的副本不会影响到原对象,反之亦然

  • js中所有的原始数据类型默认执行深拷贝,比如Boolean, null, Undefined, Number,String等

  • 文档

    javascript中深拷贝和浅拷贝的区别介绍

    javascript中深拷贝和浅拷贝的区别介绍:本篇文章给大家带来的内容是关于javascript中深拷贝和浅拷贝的区别介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。本文解释javascript中深拷贝和浅拷贝的区别。浅拷贝/Shallow Copy浅拷贝指拷贝了引用值。var original
    推荐度:
    标签: js javascript 拷贝的
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top