object - Modifying variables that are passed by reference in Javascript -


i watching javascript talk, , tutor said if pass property of object in function change real value, because passing variable reference. here slide: enter image description here

but when tried practice concept, wasn't case. here code:

var obj = {val: 5}; function changeval(x) {  x = x+5;  return x; } console.log(obj.val) // 5 console.log(changeval(obj.val)) // 10 console.log(obj.val) // 5 

i expecting obj.val change 10. please tell me what's wrong here, , correct me if wrong. thanks

you passing not object, primitive type. when pass val of obj, number , primitive type.it copies val , passes copy object.

if pass this, work

var obj = {val: 5};  function changeval( param ) {  param.val = param.val  + 5;  return param.val ; } console.log(obj.val) // 5 console.log(changeval(obj)) // 10 console.log(obj.val) // 10 

Comments