Back to questions
Junior — Middle
90
Каким образом реализована передача аргументов при вызове функций в JavaScript?
Answer from AI
sobes.tech AI
В JavaScript передача аргументов в функции реализована по значению для примитивных типов и по ссылке для объектов (но сама ссылка передаётся по значению).
- Для примитивов (числа, строки, булевы значения) при вызове функции создаётся копия значения, и изменения внутри функции не влияют на внешнюю переменную.
- Для объектов (объекты, массивы, функции) в функцию передаётся копия ссылки на объект, поэтому изменения свойств объекта внутри функции отражаются на оригинале.
Пример:
function modifyPrimitive(x) {
x = 10;
}
function modifyObject(obj) {
obj.value = 10;
}
let a = 5;
modifyPrimitive(a);
console.log(a); // 5 — не изменился
let b = { value: 5 };
modifyObject(b);
console.log(b.value); // 10 — изменился
Таким образом, аргументы передаются по значению, но для объектов это значение — ссылка на объект.