なぜ以下の質問で出力に差異が生じるのですか?関数内で空のオブジェクトを参照として渡す
Q1
function foo(x){
x.x=20;
}
var abc= {};
foo(abc);
console.log(abc);// prints an object with x=20
Q2
function foo(x){
x={
y:10
};
}
var abc= {};
foo(abc);
console.log(abc);// prints an empty object
両者の違いは何、なぜそれが第二の場合には、空のオブジェクトを印刷ありません。
を理解するcommeted行を読みます'。 –
関数パラメータ( 'x')を新しい値で上書きしても、関数外の世界には影響しません。あなたは一般的にそうすることを避けるためにポイントを作るべきです。 – JLRishe