I'm relatively new to JavaScript and the whole pass by reference thing is a bit scary. Some of objects need to protect their data from being mutated externally. This is leading me to consider a design pattern where local member objects (simple value objects) are only accessible via getters that return only copies of the local object in order to prevent references from leaking.
Is this a standard practice? How is this normally handled?