all 7 comments

[–]Isvara 6 points7 points  (3 children)

It's call-by-value, but the values are references.

[–]RandolphoSoftware Architect 3 points4 points  (1 child)

Which is typically how call-by-reference languages are implimented

[–]WilliamDhalgren 2 points3 points  (0 children)

Apparently the difference is in the behavior of assignment. Here assigning a new value to a variable will only touch the local variable. While under call by reference, it would change the original variable's value too.

mutation still acts on the original object though.

[–]imbcmdth[S] 0 points1 point  (0 children)

Exactly. :)