ใน Chrome consoleวัตถุจะกำหนดวิธีการสองวิธีที่ดูเหมือนจะทำสิ่งเดียวกัน:
console.log(...)
console.dir(...)
ฉันอ่านบางแห่งออนไลน์ที่dirใช้สำเนาของวัตถุก่อนที่จะทำการบันทึกในขณะที่logเพิ่งผ่านการอ้างอิงไปยังคอนโซลซึ่งหมายความว่าเมื่อคุณไปตรวจสอบวัตถุที่คุณบันทึกมันอาจมีการเปลี่ยนแปลง อย่างไรก็ตามการทดสอบเบื้องต้นบางอย่างชี้ให้เห็นว่าไม่มีความแตกต่างและทั้งคู่ประสบกับการแสดงวัตถุในสถานะที่แตกต่างจากเมื่อพวกเขาถูกบันทึก
ลองสิ่งนี้ในคอนโซล Chrome ( Ctrl+ Shift+ J) เพื่อดูว่าฉันหมายถึงอะไร:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
ตอนนี้ขยาย[Object]ใต้คำสั่งบันทึกและแจ้งให้ทราบว่ามันแสดงให้เห็นว่าfooมีมูลค่า 2. เดียวกันเป็นจริงถ้าคุณทำซ้ำการทดลองใช้แทนdirlog
คำถามของฉันคือทำไมทั้งสองฟังก์ชั่นที่เหมือนกันดูเหมือนว่ามีอยู่ในconsole?
console.dirจะไม่เปลี่ยนแปลงดังนั้นจึงสร้างความแตกต่างอย่างมาก
console.dir(): คุณสมบัตินี้ไม่ได้มาตรฐาน ! ดังนั้นอย่าใช้กับการผลิต;)


console.log([1,2])และconsole.dir([1,2])คุณจะเห็นความแตกต่าง