2

そのオブジェクトにすぐにアクセスせずにオブジェクトの参照を適切に変更する方法に頭を悩ませています。次のコードを検討してください。直接設定せずに色配列の値を変更することは可能ですか?

//Add some colors
var colors = [];
colors.push('red');
colors.push('yellow');

//Create a reference to colors
var reference = {};
reference.colors = colors;

//Add another array of colors
var colors2 = [];
colors2.push('white');

//Change reference to point to colors2
reference.colors = colors2;

console.log(reference.colors);
console.log(colors); //Would like it to log 'white'

次のコードを書くことを避けようとしています。

colors = colors2;

参照はある配列から別の配列を指しているだけであることを理解しています。しかし、上で示した方法以外にそれを行う方法がわかりません。

アイデアや提案は大歓迎です。

http://jsfiddle.net/Pwqeu/

4

2 に答える 2

2

この線

reference.colors = colors2;

reference.colorsへのアクセス権がなくても、 へのアクセス権があることを意味しますよcolorsね? だからというより

var colors2 = [];
// etc

行う

var colors2 = reference.colors;
// modify to your desired array
colors2.length = 0; // "reset" it
colors2.push('white');

でスコープに戻りますcolors

console.log(colors); // ['white']
于 2013-07-20T16:51:14.097 に答える