i watching javascript talk, , tutor said if pass property of object in function change real value, because passing variable reference. here slide:
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
Post a Comment