文章詳情頁
javascript - Object.assign() 深拷貝和淺拷貝的問題
瀏覽:124日期:2023-05-05 17:16:33
問題描述
如上圖,據(jù)描述,Object.assign()為淺拷貝, 為什么改變屬性a不是指向同一個(gè)引用,而b.c指向了同一個(gè)引用?
問題解答
回答1:var deepCopy = function(src) { var ret = {} for (var k in src) {ret[k] = typeof src[k] ===’object’ ? deepCopy(src[k]) : src[k] } return ret}
深拷貝一直用這個(gè)方法, Object.assgin 只能深拷貝第一層, 深層的還是淺拷貝, 記住這個(gè)就行了
回答2:let obj3 = Object.assign({},obj1,{b:Object.assign({},obj1.b)});let obj4 = JSON.parse(JSON.stringify(obj1));回答3:
淺拷貝:如果屬性元素為復(fù)雜雜數(shù)據(jù)類型時(shí),內(nèi)層元素拷貝引用;slice, concat, jQury的$.extend({},obj)都是淺拷貝;點(diǎn)擊這里了解詳情
標(biāo)簽:
JavaScript
相關(guān)文章:
1. angular.js - angularjs的自定義過濾器如何給文字加顏色?2. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下3. javascript - iframe 為什么加載網(wǎng)頁的時(shí)候滾動(dòng)條這樣顯示?4. macos - mac下docker如何設(shè)置代理5. dockerfile - 為什么docker容器啟動(dòng)不了?6. mysql - AttributeError: ’module’ object has no attribute ’MatchType’7. javascript - JS設(shè)置Video視頻對(duì)象的currentTime時(shí)出現(xiàn)了問題,IE,Edge,火狐,都可以設(shè)置,反而chrom卻...8. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?9. javascript - es6中this10. 新手 - Python 爬蟲 問題 求助
排行榜

熱門標(biāo)簽