Re[18]: Оффтоп
От: binnom  
Дата: 12.06.15 18:14
Оценка: 2 (1) +1
Здравствуйте, 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.

Отредактировано 12.06.2015 18:24 binnom . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.