對物件狀態的Console.Log 輸出進行故障排除
在許多瀏覽器中,包括沒有附加元件的Safari,console. log 顯示物件的狀態在執行結束時而不是在函數呼叫時。這可能會導致調試時出現混亂。
理解問題
將 console.log 與物件一起使用時,它只記錄對該物件的引用。由於物件是可變的,因此在呼叫 console.log 後對物件所做的任何更改都會反映在顯示的輸出中。
解決方案:使用 console.dir()
console.dir() 函數提供了這個問題的解決方案。它在呼叫函數時會列印物件屬性的目錄,準確表示其狀態。
範例:
var test = {a: true} console.dir(test); // {a: true} test.a = false; console.dir(test); // {a: false}
替代解決方案:JSON 字串轉換
另一種方法是將物件轉換
另一種方法是將物件轉換為JSON 字串使用JSON.stringify()。然後可以使用 console.log 記錄該字串,然後使用 JSON.parse() 解析回物件。此方法提供與 console.dir() 類似的功能。
console.log(JSON.parse(JSON.stringify(obj)));
以上是為什麼 `console.log` 顯示最終物件狀態,以及如何查看其初始狀態?的詳細內容。更多資訊請關注PHP中文網其他相關文章!