對象按引用傳遞。他們從不復制。我有代碼段如下:如果通過引用傳遞JavaScript對象,爲什麼更新屬性值不會更新本地變量
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
我的問題是在我更新的對象者的姓名爲「湯」,爲什麼不更新本地varialbe FNAME?
在這個例子中,字符串不可變性是無關緊要的。 – Darren
@Darren如果字符串不是不可變的,你可以做'fname [2] ='c';'這會改變字符串。 –
我完全同意 - 我只是說不變性與作業方式無關。 – Darren