2017-03-11 14 views
0

はのは、例を見てみましょうjavascriptオブジェクトの割り当てを説明

S.1)を

let x = object.a; 
x = 2; 

console.log(object); 

結果:

[object Object] { 
    a: [object Object] { 
    b: 1 
    } 
} 

S.2

let x = object.a; 
x = { b: 2 }; 

console.log(object); 

結果:

[object Object] { 
    a: [object Object] { 
    b: 1 
    } 
} 

S.3

let x = object.a; 
x.b = 2; 
x.c = 2; 

console.log(object); 

結果:

[object Object] { 
    a: [object Object] { 
    b: 2, 
    c: 2 
    } 
} 

なぜs.1とs.2が失敗するのですか?

答えて

0

S1とS2では、新しい値/オブジェクトのXの値を変更しています。 「オブジェクト」への参照が破られ、新しいポインタが割り当てられます。したがって、もはや「元の」オブジェクトを変更することはありません。

ただし、S3では、既存のオブジェクトのプロパティを変更しています。参照はまだ維持されているので、「オブジェクト」と「x」の両方のプロパティを同時に変更しています。

関連する問題