首页 > 解决方案 > Javascript对象的行为不同?

问题描述

到目前为止,我相信 javascript 中的对象如果分配给另一个变量总是通过引用。

例如

var x = {
    key1: "key1",
    key2: "key2"
}

var y = x

所以如果我做类似的事情y.key1= "modifiedKey1"

key1in 的值x也会改变。x.key1 =modifiedKey1

但是,当我这样做时,y = null或者y= "someRandomString"

没有变化x

x 不为空,它仍然是同一个对象。

到底发生了什么?

标签: javascript

解决方案


因为您确实将引用设置为null意味着您不再指向任何地方,所以它不会影响它指向的对象
y = {"a" : 3}-相同,x不会更改,因为您没有更改对象yx指向但您更改了对象y指向的内容。


推荐阅读