Nesneleri parametre olarak iletirken, JavaScript bunları referans olarak iletir ve nesnelerin yerel kopyalarını oluşturmayı zorlaştırır.
var o = {}; (function(x){ var obj = x; obj.foo = 'foo'; obj.bar = 'bar'; })(o)oolacak.foove.bar.Bunu klonlayarak aşmak mümkündür; basit örnek:
var o = {}; function Clone(x) { for(p in x) this[p] = (typeof(x[p]) == 'object')? new Clone(x[p]) : x[p]; } (function(x){ var obj = new Clone(x); obj.foo = 'foo'; obj.bar = 'bar'; })(o)o.fooveya olmayacak.bar.
Soru
- Yerel bir kopya / klon oluşturmaktan başka, nesneleri değere göre geçirmenin daha iyi bir yolu var mı?