P粉5786806752023-08-23 15:48:53
console.log()
接收一個物件的引用,所以當物件改變時,控制台中的值也會改變。為了避免這種情況,你可以使用以下方法:
console.log(JSON.parse(JSON.stringify(c)))
P粉9498488492023-08-23 11:15:47
Pointy的答案提供了很好的訊息,但對於這個問題來說並不是正確的答案。
OP所描述的行為是一個bug的一部分,該bug最早於2010年3月報告,2012年8月對Webkit進行了修復,但截至本文撰寫時,尚未整合到Google Chrome中。該行為取決於將物件文字傳遞給console.log()
時,控制台偵錯視窗是開啟還是關閉。
原始bug報告的摘錄(https://bugs.webkit.org/show_bug.cgi?id=35801):
來自Chromium開發人員的回應:
隨後發生了很多抱怨,最終導致了一個bug修復。
2012年8月實施的補丁的變更日誌說明(http://trac.webkit.org/changeset/125174):