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