I have two files in Node.js where one requires the other one.
variable_test.js:
TEST        = require('./variable_test_external.js');
TEST.get(function(myVariable) {
    var changeMeVariable;
    console.log(myVariable);
    changeMeVariable = myVariable.epicVariable;
    changeMeVariable.evenEpicerVariable = "test3";
    TEST.get(function(myVariable2) {
        console.log(myVariable2);
    });
});
variable_test_external.js:
var testVariable = new Array({epicVariable: {evenEpicerVariable: "test1"}}, {epicVariable: {evenEpicerVariable: "test2"}});
exports.get = function(callback) {
    callback(testVariable[1]); // I know that the return is unnecessary in this example but in my real application I have return there for compactness.
}
This is the output when run in Node.js with node variable_test.js:
{ epicVariable: { evenEpicerVariable: 'test2' } }
{ epicVariable: { evenEpicerVariable: 'test3' } }
The console.log(myVariable) changes in the two TEST.get's. Why does this happen?
 
     
    