成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何在JavaScript中使用深拷貝和淺拷貝

如何在JavaScript中使用深拷貝和淺拷貝?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比龍安網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式龍安網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋龍安地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

JavaScript的特點(diǎn)

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

概念1:淺拷貝

淺拷貝就是指拷貝引用,新生成的引用和原來的引用都是指向同一個對象的實(shí)例,彼此之間的操作會相互影響。

概念2:深拷貝

在堆中重新開辟內(nèi)存,把原引用對應(yīng)的對象實(shí)例中所有的內(nèi)容進(jìn)行拷貝,因此保證了深拷貝的對象和原來的對象是完全隔離的,他們之間相互沒有影響。

概念3:數(shù)組深拷貝的實(shí)現(xiàn)

1. 使用for循環(huán)

<script type="text/javascript">
  var arr1=['a','b','c'];
  var arr2=[];
  function deepCopy(arr1,arr2){
    for(var i=0;i<arr1.length;i++){
      arr2[i]=arr1[i];
    }
  }
  deepCopy(arr1,arr2);
  arr2[1]='d';
  console.log(arr1);//['a','b','c']
  console.log(arr2);//['a','d','c']
</script>

2. 使用slice()方法

<script type="text/javascript">
  var arr1=['a','b','c'];
  var arr2=arr1.slice(0);
  arr2[1]='d';
  console.log(arr1);//['a','b','c']
  console.log(arr2);//['a','d','c']
</script>

3. 使用concat方法

<script type="text/javascript">
    var arr1=['a','b','c'];
    var arr2=arr1.concat();
    arr2[1]='d';
    console.log(arr1);//['a','b','c']
    console.log(arr2);//['a','d','c']
</script>

概念4:對象的深拷貝

1. 使用for循環(huán)

<script type="text/javascript">
  var obj = {
    name: 'FungLeo',
    sex: 'man',
    old: '18'
  }
  function copyObj(obj) {
    let res = {}
    for (var key in obj) {
      res[key] = obj[key]
    }
    return res
  }
  var obj2 = copyObj(obj);
  obj2["name"]="kka";
</script>

2. 借助JSON來實(shí)現(xiàn)

<script type="text/javascript">
  var obj = {
    name: 'FungLeo',
    sex: 'man',
    old: '18'
  }
  var obj2=JSON.parse(JSON.stringif(obj));
  obj2["name"]="kka";
</script>

關(guān)于如何在JavaScript中使用深拷貝和淺拷貝問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

分享題目:如何在JavaScript中使用深拷貝和淺拷貝
文章起源:http://jinyejixie.com/article20/jjpojo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、全網(wǎng)營銷推廣、做網(wǎng)站、虛擬主機(jī)、標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計(jì)

廣告

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

成都seo排名網(wǎng)站優(yōu)化
阿拉善右旗| 桐柏县| 新宁县| 溧水县| 中西区| 黑水县| 常德市| 南安市| 砚山县| 松潘县| 新化县| 光泽县| 镇江市| 隆尧县| 全州县| 宿迁市| 洛扎县| 耒阳市| 香港| 旬阳县| 黄石市| 温州市| 雅安市| 同江市| 陇西县| 菏泽市| 湘潭县| 荔波县| 辽阳县| 河南省| 崇阳县| 双牌县| 雅安市| 偃师市| 西平县| 桂林市| 谷城县| 平度市| 南京市| 双辽市| 黄骅市|