W Chrome przedmiotem console
definiuje dwie metody, które wydają się zrobić to samo:Jaka jest różnica między konsolą console.dir a konsolą.log?
console.log(...)
console.dir(...)
Czytałem gdzieś w Internecie, że dir
wykonuje kopię obiektu przed zalogowaniem się, natomiast log
tylko przekazuje odwołanie do konsoli , co oznacza, że do czasu sprawdzenia zarejestrowanego obiektu mogło się to zmienić. Jednak niektóre wstępne testy sugerują, że nie ma różnicy i że obaj cierpią z powodu potencjalnego pokazywania obiektów w różnych stanach, niż kiedy byli zalogowani.
Spróbuj w konsoli Chrome (Ctrl + Przesunięcie + J), aby zobaczyć, co mam na myśli:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Teraz rozwiń [Object]
pod oświadczeniem dziennika i zauważ, że to pokazuje foo
o wartości 2. To samo dotyczy powtórzenia eksperymentu z użyciem dir
zamiast .
Moje pytanie brzmi: dlaczego te dwie pozornie identyczne funkcje istnieją na console
?
Wypróbuj 'console.log ([1,2])' i 'console.dir ([1,2])' a zobaczysz różnicę. –
W firebug zawartość obiektu zarejestrowanego za pomocą 'console.dir' nie zmienia się, więc robi dużą różnicę. –
Należy zachować ostrożność w 'console.dir()': ta funkcja jest [niestandardowa] (https://developer.mozilla.org/docs/Web/API/Console/dir)! Więc nie używaj go do produkcji;) – fred727