Rumah > hujung hadapan web > tutorial js > Mengapakah `console.log` Kadangkala Menunjukkan Keadaan Objek Yang Salah, dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `console.log` Kadangkala Menunjukkan Keadaan Objek Yang Salah, dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Lepaskan: 2024-12-21 09:12:14
asal
312 orang telah melayarinya

Why Does `console.log` Sometimes Show the Wrong Object State, and How Can I Fix It?

Cara Memaparkan Keadaan Semasa Objek dalam Console.log

Apabila menggunakan console.log untuk mengeluarkan objek, anda mungkin menghadapi isu di mana objek yang dipaparkan mencerminkan keadaannya pada masa pelaksanaan akhir, bukan semasa console.log pada mulanya digunakan. Percanggahan ini boleh menjadi jelas terutamanya dalam Safari dan penyemak imbas tanpa sambungan tambahan.

Isu:

Pertimbangkan contoh berikut:

var test = { a: true };
console.log(test); // {a: false}
test.a = false; 
console.log(test); // {a: false}
Salin selepas log masuk

Dalam ini senario, panggilan console.log kedua tersalah memaparkan {a: false}, walaupun nilai sebenar sifat 'a' telah ditetapkan kepada 'false'.

Penyelesaian: Menggunakan console.dir()

Untuk menyelesaikan isu ini dan memaparkan keadaan semasa objek apabila console.log dipanggil, anda boleh memanfaatkan fungsi console.dir(). Tidak seperti console.log(), console.dir() menyediakan direktori sifat objek pada masa seruan, memberikan gambaran yang tepat bagi keadaan objek.

Menggunakan JSON Stringification:

Sebagai alternatif, anda boleh menggunakan rentetan dan penghuraian JSON untuk mencapai yang serupa hasil:

console.log(JSON.parse(JSON.stringify(obj)));
Salin selepas log masuk

Pendekatan ini melibatkan penukaran objek kepada rentetan JSON menggunakan JSON.stringify() dan kemudian menghuraikannya kembali kepada objek JSON menggunakan JSON.parse(). Ini secara berkesan mengklon objek, membolehkan anda memaparkan keadaan semasanya dengan tepat.

Atas ialah kandungan terperinci Mengapakah `console.log` Kadangkala Menunjukkan Keadaan Objek Yang Salah, dan Bagaimana Saya Boleh Membetulkannya?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan