亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

javascript中clone對象詳解

2024-05-06 16:11:21
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了javascript中clone對象的方法,需要的朋友可以參考下
 
 

  開發中,打斷對象間的引用關系,只想下個副本的情況無處不在,clone一個對象就在所難免了。

  JavaScript中,簡單的方法就是用JSON函數,將對象stringify成字符串,再parse成一個新對象。要么就是從網上搜個代碼,開源社區里面clone的代碼還是有不少的。

  代碼雖然可以找得到,但,東西永遠是別人的,動手學著碼永遠是個不變的主題。

  自己寫了兩個克隆的函數:

  cloneOwn:克隆自定義對象的自有屬性,不包括繼承的屬性,屬性可以是基本數據類型和數組,自定義的對象,可以制定要克隆的屬性名稱列表。

  cloneArray: 克隆數組,數組內的元素可以是對象,基本類型。

 

復制代碼代碼如下:

//第一個參數是被克隆的對象,第二個參數是需要克隆的屬性列表
function cloneOwn() {
  var obj = arguments[0];
  if (typeof obj === 'undefined' || obj === null)
      return {};
  if (typeof obj !== 'object')
      return obj;
  //第二個參數是屬性名稱列表,就采用該列表進行刷選
  //否則就克隆所有屬性
  var attrs = arguments[1];
  var enable_spec_attr = true;
  if (!(attrs instanceof Array)) {
      //console.log(attrs);
      attrs = obj;
      enable_spec_attr = false;
  }
  var result = {};
  var i;
  for (i in attrs) {
      attr = enable_spec_attr? attrs[i]: i;
      //console.log(attr);
      if (obj.hasOwnProperty(attr)) {
          if (obj[attr] instanceof Array) {
              result[attr] = cloneArray(obj[attr]);
          }
          else if (typeof obj[attr] === 'object') {
              result[attr] = cloneOwn(obj[attr]);
          } else {
              result[attr] = obj[attr];
          }
      }
  }
  return result;
}

 

 

復制代碼代碼如下:

//克隆數組
function cloneArray(array) {
  if (typeof array === 'undefined' || array === null)
    return [];

 

  if (!(array instanceof Array))
    return [];

  result = [];

  var i;
  for(i in array) {
    if (typeof array[i] !== 'object') {
      result[i] = array[i];
      continue;
    }

    //clone object
    result[i] = cloneOwn(array[i]);
  }

  return result;
}

 

調用

1.常規克隆自定義對象:

 

復制代碼代碼如下:

var a = {
    name:'frank',
    age:20
};
var b= cloneOwn(a);

 

2.指定克隆的屬性

 

復制代碼代碼如下:

var a = {
    name:'frank',
    age:20,
    address:'any where'
};
var b = cloneOwne(a, ['name', 'age']);

 

3.克隆內含有數組屬性的自定義對象

 

復制代碼代碼如下:

var a = {
    name: 'kxh',
    age: 20,
    books: ['hai','ho','ali'],
    likes: [
        {wname: 'kaili', wage: 81, fav: "aaaaa"},
        {wname: 'seli', wage: 82, fav: "bbb"},
        {wname: 'ailun', wage: 83, fav: "ccc"},]
};
var b = cloneOwne(a);

 

4.克隆數組,內含有自定義對象

 

復制代碼代碼如下:

var a = [
   {
      name:'frank',
      age:20
    },
    {
       name:'leon',
       age:30
     }
];
var b = cloneArray(a);

 

上面的代碼還是有很多問題的,比如,內置對象的克隆就存在點問題,例如datatime類型。

問題管問題,這樣一個學習過程也是要有的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
热门国产精品亚洲第一区在线| 日韩欧美中文字幕在线播放| 亚洲第一偷拍网| 国产精品 欧美在线| 69影院欧美专区视频| 丁香五六月婷婷久久激情| 亚洲女人被黑人巨大进入| 欧美大荫蒂xxx| 777国产偷窥盗摄精品视频| 日韩一区二区三区在线播放| 国产一区二区在线播放| 精品人伦一区二区三区蜜桃免费| 精品国产一区二区三区久久久狼| 国产精品白嫩初高中害羞小美女| 欧美激情精品久久久久久黑人| 色av吧综合网| 欧美精品videos性欧美| 日韩一区二区av| 欧美精品久久久久久久| 97国产一区二区精品久久呦| 亚洲国产精品电影| 亚洲91精品在线观看| 91麻豆桃色免费看| 97色在线观看| 欧美日韩免费在线| 成年人精品视频| 国产黑人绿帽在线第一区| 亚洲激情在线视频| 欧美性猛交xxxx久久久| 一区二区在线免费视频| 97色在线视频观看| 国产精品国产自产拍高清av水多| 欧美重口另类videos人妖| 亚洲精品美女久久久久| 国产精品影片在线观看| 国产成人精品电影久久久| 国产丝袜视频一区| 色综合天天狠天天透天天伊人| 久久天天躁狠狠躁夜夜av| 国产欧美日韩中文字幕在线| 国产精品爽爽爽| 久久精品中文字幕电影| 性欧美办公室18xxxxhd| 97婷婷大伊香蕉精品视频| 日韩精品中文字幕在线观看| 5278欧美一区二区三区| 亚洲精品久久久久久下一站| 精品福利在线视频| 亚洲电影免费观看高清完整版在线观看| 在线精品国产成人综合| 97视频国产在线| 亚洲欧洲美洲在线综合| 2021久久精品国产99国产精品| 国产精品久久久久久久久久ktv| 亚洲精品久久7777777| 国产v综合ⅴ日韩v欧美大片| 色av中文字幕一区| 欧美在线一级视频| 91在线观看免费高清完整版在线观看| 久久国产精品久久久久久久久久| 成人免费网站在线看| 国产精品高清在线观看| 97国产精品人人爽人人做| 伊人久久久久久久久久久久久| 26uuu日韩精品一区二区| 欧美激情免费观看| 亚洲一区二区三区在线免费观看| 亚洲国产日韩欧美在线动漫| 91wwwcom在线观看| 日本精品中文字幕| 亚洲一区第一页| 国产精品女主播| 国产精品亚洲美女av网站| 欧美大全免费观看电视剧大泉洋| 美女撒尿一区二区三区| 97在线观看免费高清| 欧美视频精品一区| 国产免费久久av| 91精品国产高清久久久久久| 91夜夜未满十八勿入爽爽影院| 亚洲黄色成人网| 欧美性理论片在线观看片免费| 日本成人在线视频网址| 日韩黄色av网站| 国产精品扒开腿爽爽爽视频| 疯狂蹂躏欧美一区二区精品| 欧美夫妻性生活视频| 日韩**中文字幕毛片| 亚洲人成在线观看网站高清| 亚洲欧洲日韩国产| 国产精品久久精品| 日韩av免费看网站| 欧美国产亚洲视频| 久久久久国产精品www| 青青在线视频一区二区三区| 岛国av在线不卡| 日韩av影院在线观看| 久久91超碰青草是什么| 亚洲网站在线播放| 日韩精品在线视频| 456国产精品| 亚洲人成欧美中文字幕| 久久亚洲精品成人| 国产精品成人国产乱一区| 亚洲精品日韩激情在线电影| 日本免费一区二区三区视频观看| 日本免费久久高清视频| 精品无人区乱码1区2区3区在线| 日韩在线不卡视频| 欧美大学生性色视频| 国内精品国产三级国产在线专| 日韩电影在线观看中文字幕| 亚洲自拍欧美色图| 欧美久久精品午夜青青大伊人| 久久久欧美精品| 九九热精品视频在线播放| 日韩av手机在线| 久久久久久999| 91精品国产91久久久久久| 日韩av中文字幕在线播放| 日韩中文综合网| 亚洲视频精品在线| 欧美黑人性生活视频| 38少妇精品导航| 久久人人看视频| 国产精品久久久久久久久男| 久久久久久久久网站| 日韩激情片免费| 国产精品一区电影| 国产丝袜高跟一区| 日韩av理论片| 亚洲精品一区二区在线| 亚洲白拍色综合图区| 亚洲国产欧美一区二区三区久久| 亚洲女人天堂视频| 欧美丰满少妇xxxxx做受| 欧美精品免费在线| 国产精品久久久久久中文字| 久久99热这里只有精品国产| 国产精品极品美女在线观看免费| 91色在线观看| 成人免费网站在线| 九九九久久国产免费| 欧美性生交xxxxx久久久| 亚洲精品99久久久久中文字幕| 色哟哟网站入口亚洲精品| 亚洲最大av网站| 日韩三级影视基地| 亚洲色图国产精品| 亚洲综合精品一区二区| 亚洲品质视频自拍网| 夜夜嗨av色一区二区不卡| 欧美最猛黑人xxxx黑人猛叫黄| 91午夜理伦私人影院| 国产成人在线一区| 日韩电影免费观看在线观看| 97av视频在线| 91国偷自产一区二区三区的观看方式| 狠狠躁天天躁日日躁欧美| 精品国产91乱高清在线观看| 精品性高朝久久久久久久| 91国产精品91| 欧美精品久久久久久久| 懂色av中文一区二区三区天美|