欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JavaScript中淺拷貝和深拷貝的原理是什么

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)JavaScript中淺拷貝和深拷貝的原理是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),來(lái)鳳企業(yè)網(wǎng)站建設(shè),來(lái)鳳品牌網(wǎng)站建設(shè),網(wǎng)站定制,來(lái)鳳網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,來(lái)鳳網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

JavaScript的特點(diǎn)

1.JavaScript主要用來(lái)向HTML頁(yè)面添加交互行為。 2.JavaScript可以直接嵌入到HTML頁(yè)面,但寫成單獨(dú)的js文件有利于結(jié)構(gòu)和行為的分離。 3.JavaScript具有跨平臺(tái)特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺(tái)下運(yùn)行。

淺拷貝的實(shí)現(xiàn)方式

1、自定義函數(shù)

function shallowClone (initalObj) {
   var obj = {};
   for ( var i in initalObj) {
    obj[i] = initalObj[i];
   }
   return obj;
}

2、ES6 的 Object.assign()

let newObj = Object.assign({}, obj);

3、ES6 的對(duì)象擴(kuò)展

let newObj = {...obj};

深拷貝的實(shí)現(xiàn)方式

1、JSON.stringify 和 JSON.parse

JSON.stringify 把對(duì)象轉(zhuǎn)換成字符串,再用 JSON.parse 把字符串轉(zhuǎn)換成新的對(duì)象。

可以轉(zhuǎn)成 JSON 格式的對(duì)象才能使用這種方法,如果對(duì)象中包含 function 或 RegExp 這些就不能用這種方法了。

let newObj = JSON.parse(JSON.stringify(obj));

2、jquery 和 zepto

jquery 和 zepto 里的 $.extend 方法可以用作深拷貝。

var $ = require('jquery');
var newObj = $.extend(true, {}, obj);

3、lodash

用 lodash 函數(shù)庫(kù)提供的 _.cloneDeep 方法實(shí)現(xiàn)深拷貝。

var _ = require('lodash');
var newObj = _.cloneDeep(obj);

4. 自己封裝

deepClone = (obj) => {
    let objClone = Array.isArray(obj)?[]:{};
    if(obj && typeof obj==="object"){
      // for...in 會(huì)把繼承的屬性一起遍歷
      for(let key in obj){
        // 判斷是不是自有屬性,而不是繼承屬性
        if(obj.hasOwnProperty(key)){
          //判斷ojb子元素是否為對(duì)象或數(shù)組,如果是,遞歸復(fù)制
          if(obj[key]&&typeof obj[key] ==="object"){
            objClone[key] = this.deepClone(obj[key]);
          }else{
            //如果不是,簡(jiǎn)單復(fù)制
            objClone[key] = obj[key];
          }
        }
      }
    }
    return objClone;
}

上述就是小編為大家分享的JavaScript中淺拷貝和深拷貝的原理是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:JavaScript中淺拷貝和深拷貝的原理是什么
文章地址:http://www.chinadenli.net/article14/gcscde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作網(wǎng)站內(nèi)鏈企業(yè)建站移動(dòng)網(wǎng)站建設(shè)網(wǎng)站改版建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司