0

私はJavaScriptを使用しています。私はオブジェクトを持っています。次に、初期化する配列内にそのオブジェクトを配置します。次に、その配列とその中の値に対していくつかの作業を行います。配列内のオブジェクトを変更することで、実際のオブジェクト自体も変更するかどうかを知りたいですか? 以下のコード。

function doStuff() {
    var node = getNode(); //getNode() returns a node object
    var queue = [node]; //This is the line my question is about

    while(queue.length > 0) {
        //Add data to queue[0]. Add queue[0]'s children to queue, remove queue[0]
    }

    return node;
};

では、while ループが終了したとき、ノードは変更されたオブジェクトを指しているでしょうか、それともキューに入れられる前のオブジェクトのコピーを保持しているだけでしょうか?

どんな助けにも感謝します、どうもありがとう!

4

3 に答える 3

1

Javascript のオブジェクトは常に参照によって割り当てられ、自動的にコピーされることはありません。

于 2013-07-24T08:34:24.410 に答える
0

自分で確認できます:

var obj = {a: 1, b: 1};
var arr = [obj];
arr[0].a = 0;
alert(obj.a) // Result: 0;

http://jsfiddle.net/pnMxQ/

于 2013-07-24T08:35:16.823 に答える