effe een update!
zover ik kan zien is het een Referentie:
code:
1
2
3
4
5
| var a = new Array("Original_0","Original_1");
var b = a;
b[0] = "New_0";
trace(a); // New_0, Original_1
trace(b); // New_0, Original_1 |
een
code:
1
2
3
4
5
| var a = new Array("Original_0","Original_1");
var b = new Array(a);
b[1]="New_1"
trace(a); // New_0, Original_1
trace(b); // New_0, Original_1, New_1 |
//eigenlijk zou ie moeten tracen [[ , ], ]... wat het ineens duidelijk maakt

//een new Array(a) is dus gewoon een multi-dim-array... like expected...
//dus geen copy-constructor alla C++
wat tot de obfuscatie leidde! ;):
code:
1
2
3
4
5
| var a = new Array(("Original_0","Original_1");
var b = a;
b = ["New_0","New_1"]; //= b =new Array...
trace(a); // Original_0, Original_1
trace(b); // New_0, New_1 |
maw de twee variable zijn referenced totdat een van de twee een new object wordt en dus 'unlinked' eigenlijk normaal als je met een taal werkt zonder pointers.
wat dus ook will zeggen dat je als je een copy wil pakken elk element kunt gaan kopieren

WoeHoe AS...
Nou ook niet waar die is van de mailing list net
var a = new Array(1,2,3);
var b = a.splice(), of = a.concat(); //agh het hoeft niet moeilijk te zijn kun
//je ineens in je globals steken Array.clone = function(){return this.concat();}
[
Voor 16% gewijzigd door
hobbit_be op 13-01-2003 23:12
]