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:
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:
var args = { hello: 'world' };
function myFunction(args) {
args = 'hello';
}
myFunction(args);
console.log(args); //"hello"
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.
var args = { hello: 'world' };
function myFunction(args){
args.newHello = 'another world';
}
myFunction(args);
console.log(args); // This would print:
// "{ hello: 'world', newHello: 'another world' }"
Yes that's possible and you can see it by simple running the code.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.