Как в javascript передать ссылку?
Зачёт горит, завис на одном задании - намертво
Цитата:
function (a, b) { var c = a; a = b; b = c; } - бесполезно, меняется только внутри функции. function (&a, &b) { - ошибка синтаксиса. |
jtd, так а нафига ты параметры функции также обозвал, дай им другие имена.
|
<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, но по условию задачи должны быть аргументы) вообще какое-то бредовое задание там из без дополнительной переменной можно обойтись, есть подозрение что его переписали с какого-то другого языка))
|
Rise,
я не понял что изменится если написать например function swap(x1, x2) ? До переданных переменных никак не "дотянуться" |
Цитата:
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 |
Rise, в условии задачи не сказано, что параметры должны лежать вне функции. Полагаю, нужно поменять параметры местами внутри самой функции и в ней же вывести результат.
|
j0hnik,
а если переменные a и b по-другому названы? |
Ruslan_xDD, как не сказано вон написано в первом посте :)
|
jtd, да без разницы как названы, почитай что такое параметры функции и аргументы, и в js по ссылке передаются только объекты и нет специального синтаксиса для ссылок.
|
Вы наверно неправильно поняли, нужен swap точно такой же как в C++
|
Rise,
да ёбаный в рот, а нахуй ты мне лечишь за названия переменных, а потом говоришь что "без разницы как названы", пиздец блять. |
jtd, так естественно не должны совпадать с глобальными даун)
|
Цитата:
т.е. даже если бы эти a и b из задачи были объектами, то в таком виде задача всё равно бы не решалась, в общем случае. |
Цитата:
|
Rise,
еблан при чём тут названия аргументов и названия переменных? Ты с программированием дальше хелловорлда знаком? в сишке я могу написать Код:
int SWAP(int &a, int &b) { Мне в лабе надо то же самое на жс Зоопарк блять. |
jtd, да не получится так если переменная примитивного типа (не объект), а явного указания ссылки в js нет.
|
Немного извращений :D
const myEval = code => eval(code); function swap(a, b) { myEval(`a = ${b}; b = ${a}`); } let a = 0, b = 1; swap(a, b); console.log(a); console.log(b); Сойдёт? |
Ruslan_xDD, не то, там смысл в том чтобы если поменял имена переменных только здесь let c = 1, d = 2; и тоже бы работало.
|
jtd, зато в твоей сасишке такого нет)
let a = 0, b = 1; [a, b] = [b, a]; console.log(a, b); |
Rise,
а в джаваскрипте есть? Цитата:
|
jtd, 2017 год на дворе, а ты всё пользуешься IE, новому стандарту JavaScript уже 2 года, а Microsoft не чешется.
|
Rise,
из нового не все поддерживает не только IE. |
laimas, а кто еще не поддерживает деструктуризацию массива на текущий момент, вроде уже все вышли из экспериментального режима, или трудно обновиться?
|
Rise,
ну если бы новое, это только деструктуризация массива, то все было бы Ок. :) А на практике новое из HTML5, CSS3 и JS далеко не всё и всеми поддерживается. И бог знает сколько еще времени потребуется на это. |
laimas, к 2020-му говорят) но если судить по тому что HTML5 перекочевал в "живой стандарт" то это никогда не закончится))
|
Часовой пояс GMT +3, время: 21:05. |