Возьмите этот кусок 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>