欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談克隆 JavaScript

 更新時(shí)間:2021年10月29日 10:53:15   投稿:hqx  
這篇文章主要介紹了克隆 JavaScript,克隆又有淺克隆與深克隆,文章圍繞JavaScript淺克隆與深克隆的相關(guān)資料展開具體內(nèi)容,需要的朋友可以參考一下

1、淺克隆

淺克隆無法copy數(shù)組和對(duì)象

var obj = {
    name : "abs",
    age : '18',
    sex : 'male'
}
var obj1 = {}
function clone(Origin,target) {
    target = target || {};//防止用戶不輸入target
    for(var k in Origin){
        target[k] = Origin[k];
    }
}
clone(obj,obj1);

2、深克隆

先判斷它是什么,原始值,數(shù)組還是對(duì)象,分別處理

  • 遍歷對(duì)象
  • 是原始值直接copy
  • 不是原始值判斷是數(shù)組還是對(duì)象
  • 是數(shù)組建空數(shù)組
  • 是對(duì)象建空對(duì)象
  • 建立了之后再遍歷一遍原始對(duì)象或數(shù)組里是啥
  • 遞歸
var obj = {
    name : 'lin',
    age : '18',
    sex : 'male',
    card : [1,2,3,4],
    wife : {
        name : 'bcsds',
        son : {
            name : 'aaa'
        },
        age : '23'
    }
}
var obj1 = {}
//原始值和對(duì)象數(shù)組typeof返回值有區(qū)別
function deepClone(origin,target) {
    target = target || {};
    for(var k in origin) {
        if(origin.hasOwnProperty(k)){
            if(typeof(origin[k]) == 'object') {
                if(Object.prototype.toString.call(origin[k]) == '[object Array]') {
                    target[k] = [];
                }else {
                    target[k] = {};
                }
                deepClone(origin[k],target[k]);
            }else {
                target[k] = origin[k];
            }
        }
    }
}
deepClone(obj,obj1);

相關(guān)文章

  • 微信小程序 Image組件實(shí)例詳解

    微信小程序 Image組件實(shí)例詳解

    這篇文章主要介紹了微信小程序 Image組件實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 些很實(shí)用且必用的小腳本代碼

    些很實(shí)用且必用的小腳本代碼

    些很實(shí)用且必用的小腳本代碼...
    2006-06-06
  • 制作特殊字的腳本

    制作特殊字的腳本

    制作特殊字的腳本...
    2006-06-06
  • JS異步觀察目標(biāo)元素方式完成分頁加載

    JS異步觀察目標(biāo)元素方式完成分頁加載

    這篇文章主要為大家介紹了異步觀察目標(biāo)元素方式完成分頁加載示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 前端JavaScript大管家 package.json

    前端JavaScript大管家 package.json

    這篇文章主要介紹了前端JavaScript大管家 package.json,在每個(gè)前端項(xiàng)目中,都有package.json文件,它是項(xiàng)目的配置文件,常見的配置有配置項(xiàng)目啟動(dòng)、打包命令,聲明依賴包等,下面我們就來學(xué)習(xí) package.json的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • Typescript?封裝?Axios攔截器方法實(shí)例

    Typescript?封裝?Axios攔截器方法實(shí)例

    這篇文章主要為大家介紹了Typescript?封裝?Axios攔截器方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • JS實(shí)現(xiàn)可恢復(fù)的文件上傳示例詳解

    JS實(shí)現(xiàn)可恢復(fù)的文件上傳示例詳解

    這篇文章主要為大家介紹了JS實(shí)現(xiàn)可恢復(fù)的文件上傳示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • JS前端中的設(shè)計(jì)模式和使用場景示例詳解

    JS前端中的設(shè)計(jì)模式和使用場景示例詳解

    這篇文章主要為大家介紹了JS前端中的設(shè)計(jì)模式和使用場景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 8個(gè)JS的reduce使用實(shí)例和reduce操作方式

    8個(gè)JS的reduce使用實(shí)例和reduce操作方式

    reduce方法是JavaScript中一個(gè)比較強(qiáng)大的方法,可能在平時(shí)開發(fā)中,有人根本沒用過,通過下面的8個(gè)例子,學(xué)會(huì)reduce的用法以及它的常用場景,需要的朋友可以參考一下
    2021-09-09
  • 為輸入框加入數(shù)字js校驗(yàn)代碼分享

    為輸入框加入數(shù)字js校驗(yàn)代碼分享

    這篇文章主要介紹了為輸入框加入數(shù)字js校驗(yàn)代碼分享,還是比較不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-11-11

最新評(píng)論