Лучше всего взглянуть на закрытия javascript, понять области действия и назначение указателей this. «это» появилось еще до объектно-ориентированного программирования, но для него определенно необходимо.
Это сильно зависит от роли цепочек областей действия в идентификаторе.
разрешение и т. д. разрешение имен свойств объектов.
Простое объяснение Закрытия - то, что ECMAScript позволяет внутреннему
функции; определения функций и функциональные выражения, которые
внутри функциональных окон других функций.
Свойства, созданные для объекта Variable, которые соответствуют
объявленным локальным переменным изначально присваиваются неопределенные значения
во время создания переменной, фактическая инициализация локального
Переменные не происходит до оценки соответствующей
выражения присваивания во время выполнения кода тела функции.
Дело в том, что объект Activation с его аргументами
свойство и объект Variable с именованными свойствами, соответствующими
с функцией локальные переменные, являются одним и тем же объектом, который позволяет
аргументы идентификатора, которые должны обрабатываться, как если бы это была локальная функция
переменная.
Наконец, значение назначено для использования с ключевым словом this. Если
Присвоенное значение относится к объекту, а затем к нему добавляется префикс доступа
со ссылкой свойства этого ключевого слова этого объекта. Если
присвоенное значение (внутренне) равно нулю, тогда это ключевое слово будет ссылаться
к глобальному объекту.
Глобальный контекст выполнения получает немного другую обработку, как
у него нет аргументов, поэтому он не требует определенной активации
объект, чтобы ссылаться на них. Глобальный контекст выполнения действительно нуждается в
область действия и ее цепочка областей действия состоит из ровно одного объекта - глобального
объект. Глобальный контекст выполнения проходит через переменную
инстанцирование, его внутренние функции являются нормальной функцией верхнего уровня
объявления, составляющие основную часть кода JavaScript. Глобальный
объект используется как объект Variable, поэтому глобально объявлен
функции становятся свойствами глобального объекта. Как сделать глобально
объявленные переменные.
Глобальный контекст выполнения также использует ссылку на глобальный
объект для этого объекта.
Курорт http://jibbering.com/faq/notes/closures/
глава: Разрешение идентификатора, контексты исполнения и цепочки областей действия