Рассмотрим этот кусок кода, который является основным примером передачи аргумента по значению (здесь это объект, который передается по значению):Передача объектов по значению в функции
function setName(obj) {
obj.name = "Pork";
obj = new Object();
obj.name = "Chicken";
}
var person = new Object();
setName(person);
alert(person.name);
Выход этот код - «Свинина» (очевидно), но я пытаюсь понять, почему новый объект, созданный в функции setName, не перезаписывает значение, хранящееся в obj. Вместо этого это, по-видимому, создает указатель на локальный объект, который уничтожается при завершении функции.
Вы хотите прочитать [ответ] (http://stackoverflow.com/a/3638034/1960455) на вопрос [Является ли JavaScript перекрестной ссылкой или языком с пересылкой?] (Https : //stackoverflow.com/questions/518000). –
Возможный дубликат [Является ли JavaScript паролем или ссылкой по языку?] (Http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass -by-value-language) –
Спасибо, я прочитаю все ответы и посмотрю, разъяснят ли они то, что я просил. – dolanator