Начинаю изучать JS. Вопрос по теме взаимодействия локальных и глобальных параметров объекта
function func(arg) {
return arg = '!';
}
let obj = {a: 1, b: 2, c: 3};
console.log(func(obj.a));
console.log(obj);
Меня интересует, почему в первом случае возвращает восклицательный знак вместо всего объекта, если я передавал только значение параметра объекта "а", при вызове функции.
Ответы (2 шт):
Автор решения: Andrey
→ Ссылка
Потому что необходимо в функции просто возвратить аргумент
function func(arg) {
return arg;
}
Автор решения: Grundy
→ Ссылка
Аргументы функций нужно рассматривать как обычные переменные.
Тогда твой код будет равносилен:
arg = obj.a;
arg = '!';
Очевидно, что в данном случае было бы странно ожидать изменение внутри obj.