3 ms·
> I'm not sure I agree with your framing of the precise terminology ("passing a reference to an object by value" vs "passing an object by reference") The disti
by slibhb 6y ago
> I'm not sure I agree with your framing of the precise terminology ("passing a reference to an object by value" vs "passing an object by reference")
The distinction is that, if JS truly was pass-by-reference for objects, you could change what the reference was pointing to. But you can't.
I agree with you that objects/references are a stumbling block for new programmers in JS. You have to understand how these things work but there's no explicit concept of a reference, which means it can be tricky to learn.
- brundolf 6y ago> you could change what the reference was pointing to That's only true if you're passing the pointer by reference. That's different from passing the object itself by reference. I did just look up the C++ semantics and learned something: technically reference-arguments don't have to be implemented by the compiler as pointers, though in practice they mostly are. So in that sense it's technically more correct to say that JS works with object pointers and not references. But we're really getting quite deep into the weeds at that point. https://stackoverflow.com/questions/5893873/pass-by-reference-vs-pass-by-pointer#5893950 https://stackoverflow.com/questions/5893873/pass-by-referenc...