bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

JS對象深度克隆實例分析

本文實例講述了JS對象深度克隆。分享給大家供大家參考,具體如下:

成都創新互聯公司主要從事網站制作、成都網站設計、網頁設計、企業做網站、公司建網站等業務。立足成都服務通江,10余年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:13518219792

首先看一個例子:

var student = {
  name:"yxz",
  age:25
}
var newStudent = student;
newStudent.sex = "male";
console.log(student); //{name:"yxz",age:25,sex:"male"}

由此可見,將一個對象通過簡單的傳遞賦值傳遞給一個新的變量時,僅僅是給該對象增添了一個別名。所以,對該別名的操作也會作用到原對象上去,所以通過newStudent.sex給對象student添加屬性可以實現。然而,更多的時候我們希望newStudent和student對象是獨立的,那么就需要生成一個原對象的副本,請看下面的例子:

var cloneObj = function(obj){
  var str, newobj = obj.constructor === Array ? [] : {};
  if(typeof obj !== 'object'){
    return;
  } else if(window.JSON){
    str = JSON.stringify(obj), //序列化對象
    newobj = JSON.parse(str); //還原
  } else {
    for(var i in obj){
      newobj[i] = typeof obj[i] === 'object' ? cloneObj(obj[i]) : obj[i]; 
    }
  }
  return newobj;
};
//測試
var student = {
  name:"yxz",
  age:25,
  sex:"male"
};
//執行深度克隆
var newStudent = cloneObj(student);
delete newStudent.sex;
console.log(newStudent); //{name:"yxz",age:25}
console.log(student); //{name:"yxz",age:25,sex:"male"}

通過執行結果可以看出newStudent已經成為了一個克隆出來的副本,對newStudent的任何操作將不再影響student對象。

備注:JSON.stringify和parse分別為JSON對象的序列化和反序列化函數,即分別負責將對象序列化成字符串和將json字符串反序列化成對象,因為這個是屬于ECMAScript5規范,所以上面程序標注部分做了一個兼容處理。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

網站名稱:JS對象深度克隆實例分析
標題來源:http://vcdvsql.cn/article8/gghpop.html

成都網站建設公司_創新互聯,為您提供全網營銷推廣微信小程序移動網站建設網站營銷定制開發ChatGPT

廣告

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

成都seo排名網站優化