任何人都可以阐明这种行为吗?以及如何将 a 作为新对象实例私下处理?谢谢
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?
编辑:对象是通过引用访问的,因此“a”会受到全局影响。问题是,在 Node.js 场景中,如果实例不是隔离/新的,则这些对象可能会被不同的用户入口点更改。对此有何想法?