Array 在 Nodejs 和浏览器中的行为不同

Apr*_*tim 5 javascript arrays object node.js

我有这段代码:

let a = {};
a.x = 'John';

let b = [];
b['y'] = a;
console.log(b);

a.x = 'Dan';
console.log(b)


Run Code Online (Sandbox Code Playgroud)

我使用命令行在 NodeJS 中运行此代码并在 Chrome 浏览器控制台中运行它。

结果:在 NodeJS 中,结果是 [ y: { x: 'John' } ] [ y: { x: 'Dan' } ] NodeJS 结果

结果:在 Chrome 浏览器控制台中,结果是: [ y: { x: 'Dan' } ] [ y: { x: 'Dan' } ]浏览器结果

为什么它在节点和浏览器控制台中给出不同的结果?谁能解释一下这里到底发生了什么?

Mus*_*usa 4

Chrome 浏览器控制台向您显示对象的实时值,即它会在更改时更新显示的值,而 Node js 控制台不会执行此操作。
因此,当您执行第一个 console.log 时,它会显示与节点中相同的内容,但是当您更改a它的值时,它会在第一个 console.log 中更新。