2016-07-15 11 views
0
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(); 

variable(4) "number"という値をそのようにして取得できますか:game.player.number他のオブジェクトに渡されたオブジェクトの変更も最初のオブジェクト内で行われますか?

+0

私は、これはhttp://dmitrysoshnikov.com/ecmascript/chapter-8-evaluationことを理解するのに役立つかもしれないと思います-strategy/ – llamerr

+0

はい。オブジェクトは参照によって渡されます。プレイヤーの参照が割り当てられ、オブジェクト全体がコピーされているわけではありません。 – Rajesh

+0

@Rajeshだから、あるオブジェクトのすべての変更は、このオブジェクトが発生するすべての場所に「コピー」されますか? – daniel098

答えて

0

あなたの質問に答えるには、はい。オブジェクトの内容を編集することができます。オブジェクトの内容は元のオブジェクトに反映されますが、オブジェクト全体(その参照)を上書きしようとすると元に戻すことはできません。

あなたはこの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 
関連する問題