I wonder how memory is managed in V8. Take a look at this example:
function requestHandler(req, res){
functionCall(req, res);
secondFunctionCall(req, res);
thirdFunctionCall(req, res);
fourthFunctionCall(req, res);
};
var http = require('http');
var server = http.createServer(requestHandler).listen(3000);
The req and res variables are passed in every function call, my question is:
- Does V8 pass this by reference or does it make a copy in memory?
-
Is it possible to pass variables by reference, look at this example.
var args = { hello: 'world' }; function myFunction(args){ args.newHello = 'another world'; } myFunction(args); console.log(args);The last line,
console.log(args);would print:"{ hello: 'world', newWorld: 'another world' }"
Thanks for help and answers 🙂
That’s not what pass by reference means. Pass by reference would mean this:
And the above is not possible.
Variables only contain references to objects, they are not the object themselves. So when you pass a variable that is a reference to an object, that reference will be of course copied. But the object referenced is not copied.
Yes that’s possible and you can see it by simple running the code.