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) {


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

Rise 15.06.2017 19:59

jtd, так а нафига ты параметры функции также обозвал, дай им другие имена.

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

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

Rise 15.06.2017 20:06

j0hnik, но по условию задачи должны быть аргументы) вообще какое-то бредовое задание там из без дополнительной переменной можно обойтись, есть подозрение что его переписали с какого-то другого языка))

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 по-другому названы?

Rise 15.06.2017 20:16

Ruslan_xDD, как не сказано вон написано в первом посте :)


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