Возьмите этот кусок Javascript в браузере:
<script>
console.log(window.someThing);
var x = 12;
function foo() {
window.otherThing = x;
}
</script>
Внутри foo
мы можем получить доступ к window
, мы все это знаем, но почему именно?
- Это какая-то специальная глобальная переменная?
- Или «корневая область» (внутри тега
script
) имеет его как неявную локальную переменную, и она просто «унаследована от замыкания», как может быть любая другая локальная переменная (например,x
выше)?
И как это согласуется с тем, что переменные, объявленные непосредственно внутри тега script
, устанавливаются как свойства window
? (Или это не так?)
<script>
var x = 12;
function() {
console.log(window.x);
}
</script>
window.window
) - person Raynos   schedule 14.07.2011window.window
- person KyleMit   schedule 20.01.2019