let a = {
a: 1,
b: 2,
c: 3
}
let b = a
b.a = 2
console.log(a.a) // 2
let c = JSON.parse(JSON.stringify(b))
c.a = 4
console.log(a.a) // 2
/*
** 请问这是为什么??
*/
请教一个 js 的问题
-
JavaScript
729 引用 • 1327 回帖
JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。
-
Q&A
8112 引用 • 37001 回帖 • 160 关注
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
相关帖子
-
-
zhujie • • 1
前端来解释一下,a 是对象,直接赋值会有引用关系,所以 a 和 b 指向同一个内存地址,会相互影响。
通过 JSON 操作后的值赋给 c,相当于实现了一个对象的深拷贝。所以 c 和 a,b 直接没有引用关系。
-
-
无论什么格式,解析的时候肯定要创建新对象,不管你是 json,xml 还是 csv,都这样。
一种情况例外,就是用 require 加载 json,因为模块是单例。
1 操作wizardforcel 在 2020-05-09 14:34:40 更新了该回帖 -
-
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于