javascript - Javascript对象的行为不同?
问题描述
到目前为止,我相信 javascript 中的对象如果分配给另一个变量总是通过引用。
例如
var x = {
key1: "key1",
key2: "key2"
}
var y = x
所以如果我做类似的事情y.key1= "modifiedKey1"
key1
in 的值x
也会改变。x.key1 =modifiedKey1
但是,当我这样做时,y = null
或者y= "someRandomString"
没有变化x
x 不为空,它仍然是同一个对象。
到底发生了什么?
解决方案
因为您确实将引用设置为null
意味着您不再指向任何地方,所以它不会影响它指向的对象。
与y = {"a" : 3}
-相同,x
不会更改,因为您没有更改对象y
并x
指向但您更改了对象y
指向的内容。
推荐阅读
- scala - Scala - 迭代包含 List() 的 Any 变量
- r - 如何平滑ggplot中阴影区域的边缘?
- python - 使用另一个数据框在python中设置数据子集
- jenkins - Jenkins 的“管道:构建步骤”插件的奇怪行为
- javascript - 可以在没有 AJAX 的情况下使用 Dropzone.js 吗?
- python - 在 Python 中将字符串转换为整数表达式
- javascript - 如何在网页中显示 JSON 结果?
- vue.js - 如何使用 Jest 修复测试的 Apollo 设置?
- swift - 在展开快照时发现 nil 但它只是随机发生
- javascript - 如何为 Sails 中的图像生成外部 url?