首页 > 解决方案 > 这是关于内存中指针或引用对象的问题

问题描述

现在,比如说我写:

let object1 = {a: true}
let object2 = object1

object1.a = false

console.log(object1)
console.log(object2)

上面代码的结果如你所料:

{a: false}
{a: false}

但是如果我分配 object1 来表示一个字符串或数字,任何不是数据结构的东西,它都不会给出相同的结果,这就是我的意思:

let object1 = 'Hello'
let object2 = object1

object1 = 'Hello World'

console.log(object1)
console.log(object2)

这是以下结果:

'Hello World'
'Hello'

我已经用数组和集合尝试了第一种情况,用数字尝试了第二种情况,我也用 Python 复制了它。谁能解释为什么示例 2 的工作方式与示例 1 不同?

数据结构与字符串和数字在内存中的存储方式有区别吗?

老实说,我真的不知道,大声笑!

标签: javascriptpythonpointersmemorydata-structures

解决方案


推荐阅读