2010-06-18 5 views

Répondre

7

Le problème est que valeurs primitives (String, Number, Boolean, undefined et null), le travail par la valeur, et ils sont non mutable.

Si vous utilisez des objets comme les éléments du tableau, vous pouvez obtenir le comportement souhaité:

var a = [{value: 1}, {value:2}, {value:3}, {num:4}]; 
var b = [a[1], a[2], a[3]]; 

alert(a[1].value); // 2 
b[0].value = "foo"; 
alert(a[1].value); // "foo" 
+0

Idée intéressante +1 –

+0

trick de Nice ... Espérons que cela va résoudre mon problème. Des idées comment cela affecte les performances globales? – markovuksanovic

+0

@markovuksanovic, je ne pense pas que vous ayez de problèmes de performances, 'b' est simplement un * tableau de références *, les valeurs de chaque élément du tableau ne sont que des références pointant vers les objets d'origine. Veillez juste à ne pas créer de références circulaires, ce qui ferait que l'objet ne soit jamais récupéré. @ Daniel, merci! – CMS

Questions connexes