如何在console.log中顯示物件的目前狀態?
P粉868586032
2023-08-22 13:37:22
<p>在沒有任何附加元件的Safari瀏覽器(實際上大多數其他瀏覽器也是如此),<code>console.log</code>會顯示物件在執行的最後狀態,而不是<code> ;console.log</code>被呼叫時的狀態。 </p>
<p>我必須複製物件才能透過<code>console.log</code>輸出它,以取得該行程式碼中物件的狀態。 </p>
<p><strong>範例:</strong></p>
<pre class="brush:php;toolbar:false;">var test = {a: true}
console.log(test); // {a: false}
test.a = false;
console.log(test); // {a: false}</pre>
<p><br /></p>
如果我想查看它在記錄時的狀態,我通常會將其轉換為JSON字串。
我認為你正在尋找
console.dir()
。console.log()
不能實作你想要的功能,因為它印製的是物件的引用,而當你開啟它時,它已經改變了。console.dir
在呼叫時會列印物件的屬性目錄。下面的JSON想法是個好主意;你甚至可以繼續解析JSON字串並獲得一個可瀏覽的對象,就像.dir()會給你的那樣:
console.log(JSON.parse(JSON.stringify(obj)));