2015-12-25 36 views
6

W Chrome i Firefox widzę w konsoli:Okno, funkcja okna i obiektu funkcji

typeof Window 
"function" 
typeof window 
"object" 

mógłbyś wyjaśnić mi różnicę? Chodzi mi o to, że zawsze uważałem Window za obiekt najwyższego poziomu, a teraz widzę, że jest to funkcja, podczas gdy okno jest obiektem. Ponieważ okno jest obiektem najwyższego poziomu, Window powinien być metodą Window? Trochę mylące ...

Aha, i jest tam również obiekt, który jest ...

typeof Object 
"function" 

Więc jaka jest relacja między tymi 3 rzeczy?

Odpowiedz

0

Dobrze window jest obiektem i Window jest jego funkcja konstruktora. Jest to obiekt typu window, a klasa to Window.
window to obiekt globalny (nie Window), więc jest to jedyna naturalna metoda dla Window. Ponieważ Window jest specjalnym przypadkiem, nie można po prostu utworzyć innego new Window(), tak jak w przypadku RegExp lub Date.

alert(window instanceof Window);

0

Object to cunstructor (funkcja) do utworzenia nowego obiektu, podobnie jak Window. window to obiekt.

window to jednak bardzo szczególny obiekt/zmienna w JavaScript. Każda zmienna globalna zawarta jest w oknie! Dlatego window.window.window jest zawsze taki sam, jak zawsze punktach pojemnika głównego

Możesz przeczytać więcej o Okno tutaj: https://developer.mozilla.org/en/docs/Web/API/Window, http://www.w3schools.com/js/js_scope.asp

+0

mógłbyś wyjaśnić, jakie są typowe zastosowania okno? –

+0

utworzyłbyś inny obiekt okna, nie jestem świadomy przydatnego przykładu – CoderPi