Объект передачи javascript в качестве ссылки - программирование
Подтвердить что ты не робот

Объект передачи javascript в качестве ссылки

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

Следующее - то, что я пытаюсь сделать:

var ob = {text: 'this is me', name: 'john'}

function (object) {

     changeObject(object);
     customObjectChanger(object);
     callback = function (object) {
          object.text = 'new text';
     }

     callback(object);

     // object value here should be object{text: 'new text', name: 'john'};    
}
4b9b3361

Ответ 1

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

Это означает, что любые изменения, внесенные в объект, будут видны вам после выполнения функции.

код:

var obj = {
  a: "hello"
};

function modify(o) {
  o.a += " world";
}

modify(obj);
console.log(obj.a); //prints "hello world"

Ответ 2

"Объекты" не являются значениями в JavaScript и не могут быть "переданы".

Все значения, с которыми вы имеете дело, являются ссылками (указатели на объекты).

Передача или назначение ссылки дает другую ссылку, указывающую на тот же объект. Конечно, вы можете изменить один и тот же объект через эту другую ссылку.