Войти
ПрограммированиеФорумВеб

javascript передача ссылки на переменную

#0
17:59, 1 янв. 2018

Общеизвестно , что в javascript объекты передаются по ссылке , а простые переменные по значению.
Не равные права у них, так как , переданный объект еще можно и клонировать(по сути передать по значению).

Как же так?
Почему у объектов преимущества над простыми переменными?
Какой не очевидный способ предполагает javascript?

Типичный пример swap(a,b)

Я нашел 2  метода

Первый метод требует чтобы переменная была завернута в созданный для неё и вместе с ней объект:

var obj={value:0};
plusplus(obj);

function plusplus(arg)
{
arg.value+=1;
}
Минус в том что переменная становится не очень красивой
Если в проекте понадобилось добавить функцию "plusplus", то везде где упоминалась переменная ёё надо оборачивать в "obj"

Метод номер 2:
требует чтобы , при вызове функции программист понимал где хранится переменная

var x=0;
plusplus(window,"x");
function plusplus(arg1,arg2)
{
arg1[arg2]+=1;
}
Перелопачивать проект чтобы обернуть "х" не надо, но скорость доступа может упасть.


Какие способы передачи переменных по ссылке знаете вы?


#1
18:17, 1 янв. 2018

А зачем?
Передо мной периодически встаёт обратная задача: как присвоить объект или массив по значению - т.е. фактически склонировать его.

#2
23:58, 1 янв. 2018

bialand
> Как же так?
> Почему у объектов преимущества над простыми переменными?

плохо смотрите уроки,смотрите лучше

#3
9:21, 2 янв. 2018

Можно передавать две функции - геттер и сеттер. Но оборачивать и рефакторить тоже придется.

ПрограммированиеФорумВеб

Тема в архиве.