Re:Deep-copying in JavaScript
by amarshall on Thursday January 25, 2018 @02:37PM
(#16233849)
The object is still passed by value, however the object itself contains references, which may be mutated. If objects were pass by reference then you’d end up with {a: 2} at the end:
Don’t confuse passing a mutable entity by value with pass by reference.
[ Parent
| on HN ]
Re:Deep-copying in JavaScript
by mnarayan01 on Thursday January 25, 2018 @03:58PM
(#16234605)
> The object is still passed by value, however the object itself contains references, which may be mutated.
This would imply that:
var v = 1;
(function (o) {
o.a = 2;
}({ a: v });
console.log(v); // => 2
The whole "objects are pass-reference-by-value" is obviously annoying and confusing, but we're kind of stuck with it.Apparently there is another term (which I hadn't heard) which is: call-by-sharing
https://en.m.wikipedia.org/wiki/Evaluation_strategy#Call_by_...