Objek dan Console.log: Keanehan Terbongkar
Apabila bekerja dengan objek dan console.log, anda mungkin menghadapi gelagat yang pelik. Mari kita bongkar misteri ini dengan menganalisis coretan kod ini:
foo = [{id: 1},{id: 2},{id: 3},{id: 4}, {id: 5}, ]; console.log('foo1', foo, foo.length); foo.splice(2, 1); console.log('foo2', foo, foo.length);
Dalam Chrome, ini menghasilkan output yang tidak dijangka:
foo1 [Object, Object, Object, Object, Object] 5 0: Object 1: Object 2: Object 3: Object length: 4 __proto__: Array[0] 5 (index):23 foo2 [Object, Object, Object, Object] 4 0: Object 1: Object 2: Object 3: Object length: 4 __proto__: Array[0]
Peperiksaan Asynchronous
Kunci untuk memahami tingkah laku ini terletak pada sifat tak segerak pemeriksaan objek melalui konsol.log. Walaupun konsol menerima rujukan kepada objek secara serentak, ia tidak memaparkan sifatnya sehingga anda mengembangkannya secara manual.
Kejutan Pembolehubah Instance
Apabila anda mengembangkan objek selepas ia diubah suai, anda melihat nilai yang dikemas kini dan bukannya keadaan asal. Ini berlaku secara tidak segerak, yang membawa kepada output yang kelihatan tidak logik.
Teknik Nyahpepijat
Untuk mengelakkan ketidakkonsistenan ini, pertimbangkan teknik penyahpepijatan ini:
Atas ialah kandungan terperinci Mengapakah `console.log` Menunjukkan Nilai Objek Tidak Dijangka Selepas Pengubahsuaian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!