Wpis z mikrobloga

Jak mogę sprawdzić czy tablica która zawiera obiekty została skopiowana przez referencję?

var arr = [ { obj: 1 }, { obj: 2 }, { obj: 3 } ];
var arr2 = arr;
var arr3 = arr.slice(0);
console.log(arr === arr2); // true
console.log(arr === arr3); // false
Tak wystarczy? A i jeszcze czy to możliwe że przy głębokim kopiowaniu obiektu przez $.extend(true, {}, obj) taka tablica jak wyżej(jako pole obiektu) została skopiowana przez referencję?

#webdev #javascript #jquery
  • 8
@Ginden: @foke: Dobra działa.. przyrzekam, że na przyszłość będę uważniej czytał dokumentację ;)

On a deep extend, Object and Array are extended, but object wrappers on primitive types such as String, Boolean, and Number are not. Deep-extending a cyclical data structure will result in an error.


For needs that fall outside of this behavior, write a custom extend method instead, or use a library like lodash.