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

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

JS對類中數組屬性提前插入了新對象,這是怎么回事?

JS對類中數組屬性提前插入了新對象,這是怎么回事?

慕尼黑8549860 2018-08-15 09:09:39
我想取出這個類中的數組tables里的最后一個對象,然后對它進行修改,比如 將最后一個對象中里面的timestamp屬性修改為1,然后再作為一個新的對象通過 push 插入到原來數組的最后。(!不改變原來數組中的最后一個對象)代碼如下:但是奇怪的是我在修改lastTable之前輸出一下數組,縮略下顯示數組有一個object展開后卻變成了兩個,而且此時我并沒有將對象中的timestamp賦值為1,但展開后的數組里面的timestamp卻都變成了1(理論上因該是"1470123842")即便這只是顯示錯誤,但是我在代碼中明明只對其中一個對象的timestamp賦值了1 但是結果兩個對象都都變了,這就更加奇怪了,數組的push操作被提前執行,屬性的賦值被賦值到其它對象中,這該怎么解決?
查看完整描述

1 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

這種結果已經告訴你你嘗試修改的你認為是兩個對象其實是引用了同一個對象,從數組中取出來的對象,如果你要進行修改,應該先對該對象進行復制,這里借用一下jQuery的extend方法復制:

this.lastTable = $.extend(true,{},this.table[this.table.length - 1]);


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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