怎么在Javascript中復(fù)制對(duì)象?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
為企業(yè)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站優(yōu)化、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、競(jìng)價(jià)托管、品牌運(yùn)營(yíng)等營(yíng)銷(xiāo)獲客服務(wù)。創(chuàng)新互聯(lián)擁有網(wǎng)絡(luò)營(yíng)銷(xiāo)運(yùn)營(yíng)團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營(yíng)銷(xiāo)經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營(yíng)銷(xiāo)獲客難題,做到“讓獲客更簡(jiǎn)單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營(yíng)銷(xiāo)”三大難題,同時(shí)降低了營(yíng)銷(xiāo)成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
javascript是一種動(dòng)態(tài)類(lèi)型、弱類(lèi)型的語(yǔ)言,基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性并廣泛用于客戶端網(wǎng)頁(yè)開(kāi)發(fā)的腳本語(yǔ)言,同時(shí)也是一種廣泛用于客戶端Web開(kāi)發(fā)的腳本語(yǔ)言。它主要用來(lái)給HTML網(wǎng)頁(yè)添加動(dòng)態(tài)功能,現(xiàn)在JavaScript也可被用于網(wǎng)絡(luò)服務(wù)器,如Node.js。
js如何復(fù)制一個(gè)對(duì)象?
方法一:
把原來(lái)對(duì)象的屬性遍歷一遍,賦給一個(gè)新的對(duì)象。
//深復(fù)制對(duì)象方法 var cloneObj = function (obj) { var newObj = {}; if (obj instanceof Array) { newObj = []; } for (var key in obj) { var val = obj[key]; //newObj[key] = typeof val === 'object' ? arguments.callee(val) : val; //arguments.callee 在哪一個(gè)函數(shù)中運(yùn)行,它就代表哪個(gè)函數(shù), 一般用在匿名函數(shù)中。 newObj[key] = typeof val === 'object' ? cloneObj(val): val; } return newObj; }; //測(cè)試 var obj = {a:function(){console.log(this.b.c)},b:{c:1}},//設(shè)置一個(gè)對(duì)象 newObj = cloneObj(obj);//復(fù)制對(duì)象 newObj.b.c=2;//給新對(duì)象賦新值 obj.a();//1,不受影響 newObj.a();//2
方法二:
1). 先將對(duì)象變?yōu)樽址?,然后再變?yōu)閖son對(duì)象,防止對(duì)象的指針指向問(wèn)題,為深拷貝
2). undefined 和 function 類(lèi)型的屬性會(huì)被忽略,而 Date 類(lèi)型的屬性則會(huì)被轉(zhuǎn)換為字符串
var obj = {a:1,b:2} var newObj = JSON.parse(JSON.stringify(obj)); newObj.a=3; console.log(obj); console.log(newObj);
方法三:
針對(duì)數(shù)組對(duì)象的方法,用數(shù)組方法concat一個(gè)空數(shù)組
var a=[1,2,3]; var b=a; var c=[].concat(a); a.push(4); console.log(b); console.log(c);
方法四:
擴(kuò)展運(yùn)算符實(shí)現(xiàn)對(duì)象的深拷貝
var obj = { name: 'FungLeo', sex: 'man', old: '18'}var { ...obj2 } = obj obj.old = '22'console.log(obj) console.log(obj2)
方法五:
ES6擴(kuò)展運(yùn)算符實(shí)現(xiàn)數(shù)組的深拷貝
var arr = [1,2,3,4,5]var [ ...arr2 ] = arr arr[2] = 5console.log(arr) console.log(arr2)
關(guān)于怎么在Javascript中復(fù)制對(duì)象問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
本文名稱:怎么在Javascript中復(fù)制對(duì)象
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article8/pcoiip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)、面包屑導(dǎo)航、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(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)