本文實(shí)例講述了JS 數(shù)組和對(duì)象的深拷貝操作。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供永修網(wǎng)站建設(shè)、永修做網(wǎng)站、永修網(wǎng)站設(shè)計(jì)、永修網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、永修企業(yè)網(wǎng)站模板建站服務(wù),10年永修做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。一.數(shù)組的深拷貝let arr = [ undefined, function(){ console.log(123); }, true, null, { name:"123", age:23 } ]; // arr作為拷貝對(duì)象1. Array.from()
Array.from()能將一個(gè)類數(shù)組轉(zhuǎn)化成一個(gè)真正的數(shù)組,因此它返回的是一個(gè)新數(shù)組。
let arr1 = Array.from(arr); arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]2. Object.assign()
let arr1 = Object.assign([], arr) arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]
此方法也可用作對(duì)象的深拷貝
3. Slice()let arr1 = arr.slice(0); arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]4. Concat()
let arr1 = arr.concat(); arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]5. 擴(kuò)展運(yùn)算符深拷貝
// let [...arr1] = arr; // 這兩種都可以 let arr1 = [...arr]; arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]
此方法也可用作對(duì)象的深拷貝
二.對(duì)象的深拷貝let obj = { name: "a", age: 20, sex: false, user: { a: 20, n: "b" }, f: function(){ return 1; }, u: undefined, n: null }
用擴(kuò)展運(yùn)算符和Object.assign()方法可以深拷貝對(duì)象
let obj1 = Object.assign({}, obj) obj[age] = 2; console.log(obj1); // let obj = { name: "a", age: 20, sex: false,user: {a: 20,n: "b},f: function(){return 1;},u: undefined,n: null}
相關(guān)學(xué)習(xí)推薦:javascript視頻教程
分享文章:示例JS數(shù)組和對(duì)象的深拷貝操作
本文網(wǎng)址:http://www.rwnh.cn/article36/cppjpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站策劃、網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化、企業(yè)網(wǎng)站制作、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)