Может ли кто-нибудь пролить свет на это поведение? и как можно обрабатывать конфиденциально как экземпляр нового объекта? ThanksПочему этот объект javascript управляется?
var a = {};
var b = function(obj) {
obj.z = 10;
return obj;
};
console.log("---");
console.log(a); // a = {}
b(a);
console.log(a); // a = {z: 10} -- why is a affected? it's not a = b(a);
(function(obj){
obj.x = 9;
console.log(obj);
})(a);
console.log(a); // a = {z:10, x: 9} -- a is also manipulated, why?
EDIT: Доступ к объектам осуществляется посредством ссылки, поэтому «a» затрагивается в глобальном масштабе. Вопрос в том, что в сценарии Node.js эти объекты могут быть изменены разными точками входа пользователей, если экземпляр не изолирован/новый. идеи по этому поводу?
Объект всегда передается по ссылке. – Passerby
Просмотрите этот вопрос http://stackoverflow.com/questions/122102/most-efficient-way-to-clone-an-object –
читайте это: [** JAVASCRIPT: ПРОХОД ИЗ СТОИМОСТИ ИЛИ ПО ССЫЛКЕ **] (http: //snook.ca/archives/javascript/javascript_pass) –