Rumah >hujung hadapan web >tutorial js >Mengapakah `console.log` Kadangkala Menunjukkan Keadaan Objek Yang Salah, dan Bagaimana Saya Boleh Membetulkannya?
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}
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)));
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!