【发布时间】:2020-02-09 21:56:52
【问题描述】:
谁能解释一下下面这段代码发生了什么?为什么它会这样工作?我预计变量a 也会改变......
var base = {
cars: {
color: "blue",
brand: "Ford"
}
}
var a = base.cars;
base.cars = function () { console.log("example method") }
console.log(base) // changed to method
console.log(a) // still is object - why?
【问题讨论】:
-
不清楚你为什么会这样。您正在为该属性分配一个新值,但这不会改变对旧值的任何其他引用。
-
您将它与指针混淆了,其中使用指针更改值会更改使用该指针引用的所有其他值。在这里,创建了一个新对象,base.cars 的引用发生了变化,但 a 的引用保持不变。
-
我正在获取控制台日志的对象对象。你是说你没有得到
object作为console.log(base)的返回结果。我无法使用您的确切代码重现您的结果。
标签: javascript object reference