私はjavascriptで遊んだ、これがそれだ:
> var obj = new Object();
> obj
{}
> obj.x = 0;
0
> function change_x(o) { o.x = o.x + 1; }
> change_x(obj);
> obj
{ x: 1 }
> function change_obj(o) { o = null; }
> change_obj(obj);
> obj
{ x: 1 }
function change_obj_x(o) { console.log(o); o.x = o.x + 1; o = null; console.log(o); }
> change_x(obj)
> change_obj_x(obj);
{ x: 2 }
null
> obj
{ x: 3 }
に渡すobj
とchange_x
obj自体に変更が加えられましたが、にobj null
渡して作成しようとするとchange_obj
、objが変更されませんでした。change_obj_x
私が期待したこともしませんでした。
これを説明し、関数に関するすべてを知るためのリンクをいくつか教えてください。