Перевернулся мир в моей голове.
Всем привет. Вот я тут недавно начал читать книгу с носорогом на обложке по java script и у меня возникло несколько вопросов в понимании прочитанного в этом фрагменте текста.
8.8.2. Объект вызова Когда интерпретатор JavaScript вызывает функцию, в первую очередь он устанавливает область видимости в соответствии с цепочкой областей видимости, которая действовала на момент определения функции. Затем он добавляет в начало цепочки новый объект, известный как объект вызова – в спецификации ECMAScript используется термин объект активации (activation object). В объект вызова добавляется свойство arguments, которое ссылается на объект Arguments функции. После этого в объект вызова добавляются именованные аргументы функции. Любые локальные переменные, объявленные с помощью инструкции var, также определяются внутри объекта. Поскольку данный объект вызова располагается в начале цепочки областей видимости, все локальные переменные, аргументы функции и объект Arguments становятся видимыми из тела функции. Помимо всего прочего это означает, что все одноименные свойства оказываются за пределами области видимости. Обратите внимание: this, в отличие от arguments, – это не свойство объекта вызова, а ключевое слово. 1) Вопрос про первое предложение. Какая еще цепочка видимости в соответствии с той которая была на момент создания функции. Да я понимаю когда создаётся функции она может использовать все, что есть вне ее, а вот если функции внутри функции то внешняя не видит ничего из внутренней.При этом тут не говорится о создании функции , тут говориться о том месте где вызывают функцию, вот я не понимаю какая цепочка видимости функции может быть. 2) Второе предложение тоже слегка непонятно для меня. Начало цепочки видимости это там где глобальный объект или там где находится сама функция. В 3 предложении написано про объект вызова в котом находиться все переменные, другие функции, и все остальное что есть в функции. Я думал ,что он создается тогда же когда и создается функция, а не тогда когда она применяется. 3) И тут в самом конце написано, что потому что объект вызова находится в самом начале цепочки видимости все, что находиться снаружи функции прекрасно видит все переменные и другие вещи которые находятся внутри функции. Заранее спасибо за ответы. |
Если я отвечу на вопросы, что от этого изменится?
Начни практиковаться и сам поймешь, что автор имел ввиду. |
А как я пойму что понял это
|
Цитата:
если не понял ты не поймёшь этого :lol: |
Часовой пояс GMT +3, время: 13:51. |