传递给另一个对象的对象的更改是否也发生在第一个对象中

Is changes of object passed to another object takes place within first object too?

本文关键字:一个对象 是否 对象      更新时间:2023-09-26
function Game() {
    this.player = new Component();
    this.renderer = new Renderer(this.player);
}
function Renderer(player) {
    this.player = player;
    this.player.number = 4;
}
var game = new Game();

我可以以这种方式获得变量 (4) "数字"的值吗:game.player.number

回答你的问题,是的。您可以编辑对象的内容,这将反映在原始对象中,但是如果您尝试覆盖整个对象(它的引用),则无法覆盖。

您可以在此 jsfiddle 中查看示例(选择左上角的运行):https://jsfiddle.net/kcx61hye/34/

var player = {number:1};
var player2 = {number:2};
function Renderer(player) {
    this.player = player;
    this.player.number = 4;
}
function Renderer2(player) {
    this.player=player2;
}
document.write(player.number); //Outputs 1
Renderer(player);
document.write(player.number); //Outputs 4, so object is modified
Renderer(player2);
document.write(player.number); //outputs 4, so no modification