Mengapa Log Konsol Menunjukkan Nilai Berbeza dalam Chrome, Firefox dan Safari?

DDD
Lepaskan: 2024-10-25 14:21:45
asal
947 orang telah melayarinya

Why Do Console Logs Show Different Values in Chrome, Firefox, and Safari?

Perbezaan Nilai Objek Konsol dalam Chrome, Firefox dan Safari

Dalam JavaScript, objek disimpan melalui rujukan, bermakna console.log memanggil dengan argumen objek log rujukan objek. Ini boleh membawa kepada tingkah laku yang mengejutkan apabila melihat objek dalam konsol.

Dalam Firebug Firefox, pengelogan objek secara konsisten menunjukkan nilai yang betul:

Object { bar=1111 }
1111

Object { bar=2222 }
2222
Salin selepas log masuk

Walau bagaimanapun, dalam konsol Chrome dan Safari, tingkah laku berbeza diperhatikan:

Object { bar=2222 }                      // Object shows updated value
1111                                      // Attribute value remains unchanged

Object { bar=2222 }                      // Object shows updated value
2222                                      // Attribute value is correct
Salin selepas log masuk

Ketidakkonsistenan ini berpunca daripada keputusan reka bentuk dalam Chrome (dan Safari, kerana ia menggunakan WebKit) untuk cache objek selepas panggilan console.log yang pertama. Nilai cache digunakan untuk semua panggilan console.log berikutnya, walaupun objek dikemas kini dalam masa yang sama.

Untuk mengelakkan kekeliruan ini, disyorkan untuk menggunakan kaedah bukan objek untuk merekodkan nilai objek, seperti:

console.log(JSON.stringify(foo));      // Serializes the object into a JSON string
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan kaedah toJSON dan valueOf Chrome, yang menyediakan fungsi yang serupa:

console.log(foo.toJSON());                // Invokes the object's `toJSON` method (if defined)
console.log(foo.valueOf());               // Invokes the object's `valueOf` method (if defined)
Salin selepas log masuk

Dengan menggunakan teknik ini, anda boleh memastikan bahawa nilai yang dipaparkan dalam konsol adalah konsisten dengan keadaan sebenar objek.

Atas ialah kandungan terperinci Mengapa Log Konsol Menunjukkan Nilai Berbeza dalam Chrome, Firefox dan Safari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!