在Chrome瀏覽器中console
對象定義了兩個方法,似乎做同樣的事情:console.dir和console.log有什麼區別?
console.log(...)
console.dir(...)
我聽說網上說dir
拍攝對象的副本記錄之前,而log
只是傳遞的參考控制檯,這意味着當你去檢查你記錄的對象時,它可能已經改變了。然而,一些初步測試表明,沒有任何區別,並且它們都有可能在不同狀態下顯示對象,而不是在它們被記錄時。
在Chrome控制檯試試這個(按Ctrl + 移 + Ĵ),看看我的意思是:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
現在,展開[Object]
日誌語句下面,請注意,顯示foo
,值爲2.如果使用dir
而不是log
重複實驗,情況也是如此。
我的問題是,爲什麼這兩個看似相同的函數存在於console
?
嘗試'console.log([1,2])'和'console.dir([1,2])',你會看到區別。 – 2012-08-14 14:25:02
在firebug中,用'console.dir'記錄的對象內容不會改變,所以它有很大的不同。 – 2013-07-26 09:53:16
請小心'console.dir()':此功能是[非標準](https://developer.mozilla.org/docs/Web/API/Console/dir)!因此,請勿將其用於生產;) – fred727 2015-09-10 07:33:35