Javascript对对象的引用
Javascript references to object
我不知道如何解释这个问题,所以我将用代码来说明。
var bob = {
"1": ["a", "b"]
}
var jim = bob[1]
jim.shift()
print(bob[1])
与d8一起运行此操作,我得到[b]
的输出。
注意当我修改jim
时,bob
(我从jim引用的对象)是如何被改变的。我想有行为修改jim
对bob
没有任何作用。也就是说,即使在shift()
之后,我希望bob[1]
仍然是[a,b]
而不是[b]
。我确信这是JS中一个文档完备的部分,但我不确定如何搜索它。谢谢你的帮助。
复制bob[1]
var bob = {
"1": ["a", "b"]
}
var jim = bob[1].slice(0)
jim.shift()
print(bob[1])
JavaScript中的对象值是引用,而不是完整的对象值。当您将bob[1]
赋值给jim
时,jim
和bob[1]
都引用同一个对象(数组)。通过一个引用改变数组不会影响另一个引用;它们都指向同一个(改变了的)数组
相关文章:
- 引用对象中的通用值
- 使用连字符引用对象的属性名称
- 这在 Object 方法中不引用对象,而是引用函数绑定到的标记
- Javascript对象文字,如何使用“this”来引用对象中的变量
- AngularJS select with ng选项不更新父作用域中的引用对象属性
- 如何在ES6中使用Arrow函数引用对象内部的其他函数
- 调用时可以省略引用对象
- 从函数中引用对象时遇到问题 - Adobe Animate canvas
- 在挖空中引用对象构造函数外部视图模型的属性
- 在 JavaScript 中的回调函数中引用对象
- 从充当事件处理程序的多个方法引用对象属性
- 如何引用对象中的其他节点
- 使用 javascript 通过 ID 正确引用对象
- 使用等效的 Object.indexOf 引用对象中的对象的索引
- Javascript - 事件方法中的引用对象
- 如何避免“this”引用 DOM 元素,并引用对象
- 如何按索引引用对象属性
- 在 AngularJs 中引用对象中的数据
- 如何在没有元素的情况下获取文件引用对象
- 为什么在 JavaScript 中引用对象的不存在属性不会返回引用错误