以下のように、JavaScriptでは変数に代入されたオブジェクト同士を評価することができます。

//オブジェクトを代入した変数同士の比較 1
var profileA= { 
    firstName: "1000p",
    familyName: "nakatoji",
    age: 100
}
var objA= profileA;
var objB= profileA;
if (objA==objB) {
    $.writeln ("同じです");
} else {
    $.writeln ("違います");
}
//結果:"同じです"

 

しかし、これは内容を評価した結果ではありません。以下の例で検証してみます。

//オブジェクトを代入した変数同士の比較 2
 
var profileA= { 
    firstName: "1000p",
    familyName: "nakatoji",
    age: 100
}
var profileB= { 
    firstName: "1000p",
    familyName: "nakatoji",
    age: 100
}
var objA= profileA;
var objB= profileB;
if (objA==objB) {
    $.writeln ("同じです");
} else {
    $.writeln ("違います");
}
//結果:"違います"

 

JavaScriptではオブジェクトを変数に代入しても内容がコピーされるわけではありません(参照:変数へのオブジェクト代入は内容がコピーされるわけではない)。つまり、先の例でJavaScriptが評価していたのは変数が指し示す「オブジェクトの収納場所」であり、その値が一緒だったという結果です。

 

 

 

Joomla templates by a4joomla