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