需要解释代码输出

时间:2018-01-13 18:22:16

标签: javascript

此代码有效......它创建了一个Test对象,当初始化该Test个对象时,会创建InnerObject并将其推送到objects数组中。

list()方法返回objects数组的副本。

我在list()及其下面记录line 42方法的返回值,在line 46上,我更新objects数组中的对象(改变它)。

我不明白为什么在line 42之前执行此行时{0}会反映此突变的原因。

line 46

2 个答案:

答案 0 :(得分:0)

可能是因为console.log()是异步执行的:

console.log() async or sync?

从那里的答案中读到,我怀疑这是在发生什么。 要将此作为您实际代码的问题排除在外,建议强制将其解释为当时:console.log(JSON.stringify(obj.list()))

答案 1 :(得分:0)

当我在browser consolenodejs中运行时,元素的属性值表现为您所说的瞄准的预期方式,即它们不是更新直到更新调用之后。

您在运行此类型的环境中?