博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
intent json对象 传递_JavaScript如何实现克隆对象?
阅读量:6376 次
发布时间:2019-06-23

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

点击蓝字83fe5d1dcbc2031463d8d9b0a0e4ead3.png关注我们!每天获取最新的编程小知识!

源 / php中文网      源 / www.php.cn

通过遍历每个属性并将它们克隆到新对象。使用JSON方法作为源对象必须是JSON安全的。因此,在源对象无法转换为JSON的情况下,需要异常处理以保证其安全。object.assign方法仅执行浅度克隆。这意味着嵌套属性仍然通过引用克隆。

a6d11352d6d200290133f68cf49dd717.png

(查看原文请点击本文末尾左下角:

注,浅度克隆:简单类型为值传递,对象类型是引用的传递。深度克隆:所有元素或属性完全复制,与原对象完全脱离,也就是说所有对于新对象的修改都不会反映到原对象中。

克隆JavaScript对象有几种方法,如下:

示例1:一种方法是遍历源对象的属性,并将所有属性逐个复制到目标对象。它很简单,但不常使用。

    "UTF-8">

"text-align:center;">

"color:green;" >

    js克隆对象

"demo2">sourceObject = {a:1, b:2, c:3};

"fun()">click

"demo">

    function fun(){

        const sourceObject = {a:1, b:2, c:3};

        let tO = {};

        for (let prop in sourceObject) {

            if (sourceObject.hasOwnProperty(prop)) {

                tO[prop] = sourceObject[prop];

            }

        }

        document.getElementById("demo").innerHTML =

            "targetObject a = "+tO.a+", b = " + tO.b+", c = "+tO.c;

    }

输出:

点击按钮前

c722b6a071ffd43c39a2ad4f32779ef1.png

点击按钮后

4f132f6c3796c98adf3dee183e6c3c94.png

示例2:此示例使用JSON。使用此方法,源对象必须是JSON安全的。

    "UTF-8">

"text-align:center;">

"color:green;" >

    js克隆对象

"demo2">sourceObject = {a:1, b:2, c:3};

"fun()">click

"demo">

    function fun(){

        const sourceObject = {a:1, b:2, c:3};

        let tO = {};

        tO = JSON.parse(JSON.stringify(sourceObject));

        document.getElementById("demo").innerHTML =

            "targetObject a = "+tO.a+", b = " + tO.b+", c = "+tO.c;

    }

示例3:此方法使用
Object.assign方法。

        "UTF-8">

    "text-align:center;">  

        

"color:green;" >  

           js克隆对象

        

"demo2">sourceObject = {a:1, b:2, c:3};

    

        "fun()">click

       

"demo">

 

本篇文章就是关于javascript克隆对象的方法介绍,希望对需要的朋友有所帮助!

f84177a8185a3e71848e2716251dd226.gif

-END-

声明:本文选自「 php中文网 」,搜索「 phpcnnew 」即可关注!

转载地址:http://zovqa.baihongyu.com/

你可能感兴趣的文章
Shell 操作数据库
查看>>
if lte IE if gte IE 浏览器兼容
查看>>
基于Lumisoft.NET组件和.NET API实现邮件发送功能的对比
查看>>
C#数据库访问技术之DATAREADER对象读取数据
查看>>
各种排序方法
查看>>
编译时程序透彻理解异常并合理使用异常
查看>>
2013年5月18日星期六
查看>>
js 字符串操作函数集合
查看>>
nullnullCF 312B(Archer-等比数列极限求和)
查看>>
消息函数windows 程序设计 第三章 (下)
查看>>
java中调用web中的jsp或servlet去通知它们做一些操作
查看>>
Javascript 坦克大战
查看>>
JavaScript自动设置IFrame高度(兼容各主流浏览器)
查看>>
Linux内核中__init, __initdata, __initfunc(), asmlinkage, ENTRY(), FASTCALL()等作用
查看>>
leetcode -- Two Sum
查看>>
Windows多线程
查看>>
Resolve PSExec "Access is denied"
查看>>
C语言局部变量和全局变量问题汇总
查看>>
android 下的网络图片加载
查看>>
Paip.语义分析----情绪情感词汇表总结
查看>>