Начинаю изучать JS. Вопрос по теме взаимодействия локальных и глобальных параметров объекта

Рейтинг: 0Ответов: 2Опубликовано: 27.02.2023

function func(arg) {
    return arg = '!';
}

let obj = {a: 1, b: 2, c: 3};
console.log(func(obj.a));
console.log(obj);

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

Ответы

▲ 0Принят

Аргументы функций нужно рассматривать как обычные переменные.

Тогда твой код будет равносилен:

arg = obj.a;
arg = '!';

Очевидно, что в данном случае было бы странно ожидать изменение внутри obj.

▲ -1

Потому что необходимо в функции просто возвратить аргумент

function func(arg) {
    return arg;
}