javascript is pass by value
javascript primitive varialbles are passed by value to a function. Objects are also passed by value but the difference is that the value of the reference of the object is passed to a function. The snippet below, the value of the references of b and c are passed into the function. Within the function, the change to the b is changing the internal value of the object, thus the change will be visible to all other references that is pointing to this object. The changes to the c is changing the value of reference itself by creating a brand new object, so the value of the reference is pointing to a new object, the old object stays the same.
[code language=”javascript”]
function doUpdate(a, b, c)
{
a = a * 2;
b.msg = "hey";
c = {msg: "hey"};
}
var num = 10;
var obj1 = {msg: "greetings"};
var obj2 = {msg: "greetings"};
doUpdate(num, obj1, obj2);
console.log(num); // 10
console.log(obj1.msg); // hey
console.log(obj2.msg); // greetings
[/code]
Search within Codexpedia

Search the entire web
