0

オブジェクトは参照によって渡されます。それらは決してコピーされません。私は次のようなコードセグメントを持っています:

var person={firstname:'John', lastname:'Smith'}
var anotherPerson=person
anotherPerson.nickname='Curly'
console.log(person.nickname)
"Curly"
var fname=person.firstname
console.log(fname)
"John"
person.firstname = 'Tom'
console.log(anotherPerson)
Object {firstname: "Tom", lastname: "Smith", nickname: "Curly"}
console.log(fname)
"John" <-- fname is not updated

私の質問は、オブジェクトの人の名を「Tom」に更新した後、ローカルの変数 fname が更新されないのはなぜですか?

4

5 に答える 5

0

オブジェクトは参照によって渡されます。

  1. 「オブジェクト」は値ではなく、「渡す」ことはできません。
  2. 参照によって渡されたり割り当てられたりするものはありません。
于 2013-06-28T02:08:04.143 に答える
-1
 var fname=person.firstname; // here fname is a string, not an object

person に対して行った更新は、オブジェクトではなくプリミティブ型であるため、fname には反映されません。

于 2013-06-27T20:25:03.763 に答える