Trong Chrome, console
đối tượng xác định hai phương thức dường như làm cùng một điều:
console.log(...)
console.dir(...)
Tôi đã đọc ở đâu đó trực tuyến dir
có một bản sao của đối tượng trước khi đăng nhập nó, trong khi log
chỉ chuyển tham chiếu đến bàn điều khiển, có nghĩa là khi bạn đi kiểm tra đối tượng bạn đã đăng nhập, nó có thể đã thay đổi. Tuy nhiên, một số thử nghiệm sơ bộ cho thấy rằng không có sự khác biệt và cả hai đều phải chịu đựng các vật thể có khả năng hiển thị ở các trạng thái khác nhau so với khi chúng được ghi lại.
Hãy thử điều này trong bảng điều khiển Chrome ( Ctrl+ Shift+ J) để xem ý tôi là gì:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Bây giờ, mở rộng [Object]
bên dưới câu lệnh log và lưu ý rằng nó hiển thị foo
với giá trị là 2. Điều tương tự cũng đúng nếu bạn lặp lại thử nghiệm bằng cách sử dụng dir
thay vì log
.
Câu hỏi của tôi là, tại sao hai chức năng dường như giống hệt nhau tồn tại trên console
?
console.dir
lại không thay đổi, vì vậy nó tạo ra sự khác biệt lớn.
console.dir()
: tính năng này là không chuẩn ! Vì vậy, không sử dụng nó trong sản xuất;)
console.log([1,2])
vàconsole.dir([1,2])
bạn sẽ thấy sự khác biệt.