Показать сообщение отдельно
Старый 17.10.2007, 08:36
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от terbooter
Что-то я не до конца понимаю...

По-моему первой функции вообще ничего не передается

Код:
root_a = 1; // вот это вот что такое?
function test (a:Number) {
	a = 2;
	trace(a) //выводит 2
}
test (a);
trace (a)//выводит undefined -- не удивительно
разве первая функция не эквивалентна такой:

Код:
function test()
{
    var a:Number = 2;
}
В первой функции a -- параметр, в этой локальная переменная.
* * *

C функцией test2 тоже непонятности... а если подправить вот так

Код:
b = {a:1};
function test2 (bbb:Object) {
	b.a = 2;
}
test2 (b);
trace (b.a); // сменилось на 2
то становится ясно что функции без разницы передаем мы ей
ссылку или объект (объекты не передаются, передается ссылка на объект), она обращается напрямую к объекту b лежащему
на руте -- это и было показано
Цитата:
Сообщение от iNils
Все простые типы всегда передают только свое значение, а сложные ссылку.
.....