Показать сообщение отдельно
  #1 (permalink)  
Старый 25.08.2013, 13:18
Кандидат Javascript-наук
Отправить личное сообщение для hrundel Посмотреть профиль Найти все сообщения от hrundel
 
Регистрация: 01.08.2009
Сообщений: 102

Присваивание по ссылке и значению
Вот здесь я увидел пример:
function func() {
	var funcObj = arguments.callee

	funcObj.test++
	alert(funcObj.test)
}
func.test = 1
func()
func()

Ниже было примечание, что
Код:
В примере нельзя было сделать присвоение:

var test = arguments.callee.test
test++
так как при этом операция ++ сработала бы на локальной переменной test, а не на свойстве test объекта функции.
Почему так происходит? У меня есть предположение, что в JavaScript есть некий механизм передачи переменных по ссылке и по значению.

Возникли следующие вопросы:

1) Есть ли в JavaScript что-то похожее на передачу по ссылке?

2) Как можно понять, что записав var myvar=some.var, будет ли в var ссылка на объект или же создаётся новая локальная переменная? Если я сделаю myvar++, то я сделаю эту операцию на локальной переменной или же на объекте, на который ссылается эта переменная.
Ответить с цитированием