Прежде чем идти вперед с этой статьей, я предлагаю вам прочитать неизменяться против Metable
1. Простование по значению примитивной ценности
Pass-by-value означает прохождение значения/аргумента для функции. Изменение к аргументу внутри функции не повлияет на вне функции. Но если вы вернете результат функции, то это другое значение.
let a = 10;
function change(x) {
x = 20;
}
change(a);
console.log(a); //10 not change
let a = 10;
function change(x) {
x = 20;
return x;
}
console.log(change(a));//20
2. Просмотр посредством ссылки на объект
Передача означает прохождение адреса вместо аргумента, чтобы вызвать функцию. Изменение значения внутри функции влияют на его значение вне функции. Массив и объект pass-by-mail.
const person = {
isStudent: true
};
function graduate(kid) {
kid.isStudent = false;
}
graduate(person);
console.log(person.isStudent); // false; changed
Так вы увидите человек объявляется вне функции «Выпускник» Отказ Когда функция называется, человек Значение было мутировано.
Когда вы передаете ссылку на функцию, то функция не может изменить ссылку на точку на другой объект. Пример, как показано ниже:
const person = {
isStudent: true
};
function graduate(kid) {
kid = {
isStudent: false
};
}
graduate(person);
console.log(person.isStudent); // true; no change
«Малыш» другой объект, который отличается от «Человек» объект.
Оригинал: “https://dev.to/yukiki/javascript-pass-by-value-vs-pass-by-reference-5101”