![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2001
Адрес: spb.ru
Сообщений: 177
|
Как можно (и можно ли) передать функции параметр по ссылке, т.е. что бы она могла его менять?
|
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
При передаче простых типов данных они, если не ошибаюсь, всегда передаются по значению, то есть либо пользуемся извратом типа
a = 10;
str = "a";
trace(a); //10
ch(this, str);
trace(a); // 0
function ch(path, param){
path[param] = 0;
}
|
|
|||||
|
Регистрация: Nov 2001
Адрес: spb.ru
Сообщений: 177
|
Не хотелось бы "пользоваться извратом"... =)
Т.е. можно передавать параметры по ссылке как элементы массива, чтобы не передавать ссылки на объект и имя свойства, насколько я понял? |
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Да, можно передавать как массив, но тогда изменения произойдут в массиве.
Поэтому не проще ли использовать что-то похожее на ? Последний раз редактировалось Bad Habit; 14.11.2004 в 07:03. |
|
|||||
|
Регистрация: Nov 2001
Адрес: spb.ru
Сообщений: 177
|
Да, но я не идиот
. Мне это нужно для распределенных во времени вычислений. Т.е. чтобы можно было написать:doSomethWithThat(objectToModify); (где, функция будет выполнять объемные вычисления за неопределенный промежуток времени) а потом использовать полученный результат, типа trace(objectToModify); А то, что предложил ты, можно заменить на a=0; для простоты... Я в принципе понимаю, что ты не издеваешься, просто я сразу не раскрыл суть задачи. Прошу пардона. |
|
|||||
|
Banned
[+1 16.05.2006]
[++1 16.05.2006] [+ 1 21.05.06] [++ за хамство] [+1 21.05.2006] Регистрация: Dec 2003
Сообщений: 3,925
|
Я понимаю, что тебе это нужно не для банального обнуления, имелось ввиду, что использовать массив как промежуточный этап -- скорее всего, способ не лучший.
Надеюсь, я хотя бы в чем-то помог ![]() |
|
|||||
|
Цитата:
если параметр - объект, то передается ссылка (меняй скока надо) для простых типов - значение(т.е. чтоб модифицировать придется упаковать в объект и передавать его) в чем вопрос ? Последний раз редактировалось silin; 14.11.2004 в 21:49. |
![]() |
Часовой пояс GMT +4, время: 01:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|