Недавно я начал изучать, как передаются аргументы в функциях JavaScript. С базовыми типами вроде чисел и строк все понятно - они передаются по значению. Однако с объектами ситуация сложнее.
Вот пример:
function обновитьИнформацию(пользователь, возраст) {
пользователь.имя = "Новое имя";
возраст = 25;
}
let человек = {имя: "Иван"};
let годы = 30;
обновитьИнформацию(человек, годы);
console.log(человек.имя); // что выведется здесь?
console.log(годы); // а что здесь?
Когда я передаю объект в функцию, мне кажется, что он передается по ссылке, так как изменения в функции затрагивают и исходный объект. Но если я попытаюсь поменять сам объект со своим новым значением внутри функции, исходный объект остаётся прежним.
Можете рассказать, какая официальная позиция JavaScript по данной теме? Мне бы хотелось разобраться с этой концепцией.