| Alexandroppolus | 
			26.06.2017 10:04 | 
		 
		 
		
		 
		
		
		
		
		
	Цитата: 
	
	
		
			 
			
				
					Сообщение от Mess4me
					
				 
				Объясните почему в одном случае присваивание происходит , а в другом нет: 
			
			 
		 | 
	 
	 
 в js все параметры передаются по значению, и нет механизма, чтобы как-то поменять переменную, которую передали в функцию (т.е. нет out или in-out параметров, только in).
 
В твоем примере есть внешняя переменная obj - ссылка на объект.  
obj внутри функции func - это копия ссылки. Она ссылается на тот же объект, на который ссылается внешняя, потому в этом объекте можно что-то менять (первый случай). Во втором случае после выполнения obj = { a : 3} внутренняя obj теперь просто ссылается на другой вновь созданный объект, а внешняя не поменялась.  
	 |