Rumah >hujung hadapan web >tutorial js >Mengapa Adakah `console.log` Menunjukkan Keadaan Objek Akhir, dan Bagaimana Saya Boleh Melihat Keadaan Awalnya?
Konsol Penyelesaian Masalah. Output Log untuk Keadaan Objek
Dalam banyak penyemak imbas, termasuk Safari tanpa alat tambah, console.log memaparkan keadaan objek pada akhir pelaksanaan dan bukannya pada masa panggilan fungsi. Ini boleh menyebabkan kekeliruan semasa menyahpepijat.
Memahami Isu
Apabila menggunakan console.log dengan objek, ia hanya mencatat rujukan kepada objek. Memandangkan objek boleh berubah, sebarang perubahan yang dibuat pada objek selepas panggilan console.log akan ditunjukkan dalam output yang dipaparkan.
Penyelesaian: Menggunakan console.dir()
Fungsi console.dir() menyediakan penyelesaian kepada isu ini. Ia mencetak direktori sifat objek pada masa fungsi dipanggil, memberikan perwakilan tepat keadaannya.
Contoh:
var test = {a: true} console.dir(test); // {a: true} test.a = false; console.dir(test); // {a: false}
Penyelesaian Alternatif: Penukaran Rentetan JSON
Pendekatan lain ialah menukar objek kepada rentetan JSON menggunakan JSON.stringify(). Rentetan ini kemudiannya boleh dilog menggunakan console.log, dan kemudian dihuraikan kembali ke dalam objek menggunakan JSON.parse(). Kaedah ini menyediakan kefungsian yang serupa kepada console.dir().
Contoh Kod:
console.log(JSON.parse(JSON.stringify(obj)));
Dengan menggunakan sama ada console.dir() atau teknik penukaran rentetan JSON , pembangun boleh memaparkan dengan tepat keadaan semasa sesuatu objek apabila menggunakan console.log. Ini menghapuskan isu data basi dan meningkatkan kecekapan penyahpepijatan.
Atas ialah kandungan terperinci Mengapa Adakah `console.log` Menunjukkan Keadaan Objek Akhir, dan Bagaimana Saya Boleh Melihat Keadaan Awalnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!