Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как в javascript передать ссылку? (https://javascript.ru/forum/misc/69336-kak-v-javascript-peredat-ssylku.html)

jtd 15.06.2017 19:48

Как в javascript передать ссылку?
 
Зачёт горит, завис на одном задании - намертво

Цитата:

Напишите функцию swap(a, b), меняющую местами значения a и b. Для этого в теле функции используйте дополнительную переменную.

let a = 0, b = 1;
swap(a, b);
console.log(a); // 1
console.log(b); // 0

Что-то я не пойму как реализуется ссылочный тип в JS

function (a, b) {
  var c = a;
  a = b;
  b = c;
}


- бесполезно, меняется только внутри функции.

function (&a, &b) {


- ошибка синтаксиса.

j0hnik 15.06.2017 20:02

<head>
	<meta charset="utf-8">
</head>
<body>
	<script>
var a = 0, b = 1;
function swap () {
var c = a;
  a = b;
  b = c;
}
swap();
console.log(a); // 1
console.log(b); // 0
</script>
</body>

j0hnik 15.06.2017 20:05

даже ничего передавать не надо, функция сама возьмет если ей понадобится.

jtd 15.06.2017 20:10

Rise,
я не понял что изменится если написать например function swap(x1, x2) ?
До переданных переменных никак не "дотянуться"

j0hnik 15.06.2017 20:10

Цитата:

Сообщение от Rise (Сообщение 455588)
j0hnik, но по условию задачи должны быть аргументы)

Если так то да, как вы сказали изменить имена аргументов

let a = 0, b = 1;
function swap (c,d) {
var c = a;
  a = b;
  b = c;
}
swap(a,b);
console.log(a); // 1
console.log(b); // 0

ruslan_mart 15.06.2017 20:11

Rise, в условии задачи не сказано, что параметры должны лежать вне функции. Полагаю, нужно поменять параметры местами внутри самой функции и в ней же вывести результат.

jtd 15.06.2017 20:16

j0hnik,
а если переменные a и b по-другому названы?

jtd 15.06.2017 20:21

Вы наверно неправильно поняли, нужен swap точно такой же как в C++

jtd 15.06.2017 20:22

Rise,
да ёбаный в рот, а нахуй ты мне лечишь за названия переменных, а потом говоришь что "без разницы как названы", пиздец блять.

Alexandroppolus 15.06.2017 20:26

Цитата:

Сообщение от Rise
в js по ссылке передаются только объекты

точнее, ссылки на объекты передаются по значению.

т.е. даже если бы эти a и b из задачи были объектами, то в таком виде задача всё равно бы не решалась, в общем случае.


Часовой пояс GMT +3, время: 04:42.