Информация об изменениях

Сообщение Re[18]: Оффтоп от 12.06.2015 18:14

Изменено 12.06.2015 18:24 binnom

Здравствуйте, Sharov, Вы писали:


AC>>>>Пример: перечисли виды variable scopes в js.

S>>>Три вроде: глобальный, локальный, замыкание. Может еще instance, через this которые.
B>>Скоупов всего два: global и local. Closure — это на самом деле не scope, а одна из фич разрешения имен (name resolution) в джаваскрипте.

S>Угу, msdn так и говорит, хотя я все же считаю замыкание отдельнам скоупом, т.е. имеем доступ к переменной, которая не является локальной для функции, но и не является глобальной. Здесь вообще каша.


У как все запущено. Там даже hoisting (#8) приплели в scopes... Вот чуть ниже есть совершенно правильный ответ, но его не засчитали за таковой:

[q]Javascript uses scope chains to establish the scope for a given function. There is typically one global scope, and each function defined has its own nested scope. Any function defined within another function has a local scope which is linked to the outer function. It's always the position in the source that defines the scope.

An element in the scope chain is basically a Map with a pointer to its parent scope.

When resolving a variable, javascript starts at the innermost scope and searches outwards.[/b]
Re[18]: Оффтоп
Здравствуйте, Sharov, Вы писали:


AC>>>>Пример: перечисли виды variable scopes в js.

S>>>Три вроде: глобальный, локальный, замыкание. Может еще instance, через this которые.
B>>Скоупов всего два: global и local. Closure — это на самом деле не scope, а одна из фич разрешения имен (name resolution) в джаваскрипте.

S>Угу, msdn так и говорит, хотя я все же считаю замыкание отдельнам скоупом, т.е. имеем доступ к переменной, которая не является локальной для функции, но и не является глобальной. Здесь вообще каша.


У как все запущено. Там даже hoisting (#8) приплели в scopes... Вот чуть ниже есть совершенно правильный ответ, но его не засчитали за таковой:

Javascript uses scope chains to establish the scope for a given function. There is typically one global scope, and each function defined has its own nested scope. Any function defined within another function has a local scope which is linked to the outer function. It's always the position in the source that defines the scope.

An element in the scope chain is basically a Map with a pointer to its parent scope.

When resolving a variable, javascript starts at the innermost scope and searches outwards.