私はperson.name
が"john"
に変更された理由を理解していますが、person
がメモリ内のundefined
を次の行のobj = undefined
に参照しない理由を完全に理解できません。基本JS - なぜこのオブジェクトは未定義に変更されないのですか?
var person = { name: "wtf" };
function doStuff(obj) {
obj.name = "john";
obj = undefined;
}
doStuff(person);
person.name
は現在代わりメモリに何を「ポインティング」、すなわち、未定義のオブジェクトへjohn
と依然としてperson
参照または「点」に等しいです。私は自分の学習でこれを実行することができ、この方法で動作させることができますが、なぜこのように動作するのかを正確に表現することはできません。あなたの関数で
[JavaScriptで定義されていないオブジェクト参照]の複製があります。(http://stackoverflow.com/questions/22044780/object-references-to-undefined-in-javascript) – JJJ
関連記事[JavaScript - 方法/方法オブジェクト参照を関数からヌルに設定するか?](http://stackoverflow.com/questions/9205070/javascript-how-can-i-set-an-object-reference-to-null-from-a-function) – JJJ