W Chrome console
obiekt definiuje dwie metody, które wydają się robić to samo:
console.log(...)
console.dir(...)
Przeczytałem gdzieś w Internecie, że dir
pobiera kopię obiektu przed jego zalogowaniem, podczas gdy log
po prostu przekazuje odwołanie do konsoli, co oznacza, że zanim przejdziesz do sprawdzenia zalogowanego obiektu, mogło się to zmienić. Jednak niektóre wstępne testy sugerują, że nie ma różnicy i że oboje cierpią z powodu potencjalnie pokazywania obiektów w różnych stanach niż w momencie ich zalogowania.
Wypróbuj to w konsoli Chrome ( Ctrl+ Shift+ J), aby zobaczyć, co mam na myśli:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Teraz rozwiń [Object]
poniżej instrukcji dziennika i zauważ, że pokazuje foo
ona wartość 2. To samo dotyczy powtórzenia eksperymentu za pomocą dir
zamiast log
.
Moje pytanie brzmi: dlaczego te dwie pozornie identyczne funkcje istnieją console
?
console.dir
nie zmienia się, więc robi to dużą różnicę.
console.dir()
: ta funkcja jest niestandardowa ! Więc nie używaj go do produkcji;)
console.log([1,2])
iconsole.dir([1,2])
zobaczysz różnicę.