簡體   English   中英

console.log()顯示相同對象屬性的矛盾值

[英]console.log() showing contradictory values for the same object property

我想我可能會發瘋。

我使用console.log()來查看對象的狀態,然后在下一行上對同一對象的特定屬性執行console.log(),並為每個對象獲取不同的值。

我正在使用的代碼是:

console.log(this.pictures.Items[pic].val);

for(var i in this.pictures.Items[pic].val) {
    console.log("property: %s, value: %s", i, this.pictures.Items[pic].val[i] );
}

和螢火蟲輸出:

Picture { isLoaded=true, isSelected=false, img_src="imgs/image1.jpg", more...}

property: isLoaded, value: false
...more properties

如您所見,“isLoaded”在記錄對象本身時為true,在記錄屬性時為false。

為了以防萬一,我已經嘗試再次記錄該對象,它再次成為現實。

有誰知道這里發生了什么?

謝謝

豐富

我不完全確定這是不是你發生了什么,但是console.log()似乎在某些瀏覽器中遇到了一些問題,這些瀏覽器對某個值執行console.log()或使用正在更改的索引變量或者在數組中迭代並不總是正常工作。

我的猜測是,它與在進程邊界之間進行編組的事情有關,可能是對日志記錄表達式的實際評估的延遲,直到使用或引用的實際對象或索引發生更改為止。 我確實在Chrome中看過這個問題 - 不知道Firefox。

您應該能夠通過使用字符串數學來構建最終字符串來解決此特定問題。 如果只將最終字符串傳遞給console.log() ,其中所有內容console.log()完全評估,則此問題不會影響輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM