亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript 深拷貝問題

JavaScript 深拷貝問題

慕尼黑8549860 2018-11-06 13:17:46
本人初學者,在學習的過程中遇到了一個深拷貝相關的問題,JS代碼如下:并沒有想我預期的那樣成功深拷貝了每一個對象,從輸出值可以看出兩個對象數組之間還是存在聯系,我試過使用jQuery的extend方法深拷貝一個對象字面量形式存放的對象數組,如:[{    name: "bill",    age: 19}, {    name: "tom",    age: 20}]在這種情況下修改personArr中的對象屬性,allPerson不會隨之變化,我很疑惑,出現這種情況的原因是什么?該如何解決?經過下午的嘗試我猜測問題是在temp = new Person(data[i]);這一步上,是不是new的對象可能只是一個指向目標對象的指針?求高人指點
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

看了下jquery.extend源碼


https://img1.sycdn.imooc.com//5c0f68e50001a81907080624.jpg

可以發現在判斷 jquery.isPlainObject(copy)時為false;
即personArr[0]不是一個純粹的對象(即字面量或者構造函數為Object)
這時候執行的是

target[ name ] = copy;

即為對象的引用


查看完整回答
反對 回復 2018-12-11
  • 1 回答
  • 0 關注
  • 599 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號