In JavaScript,
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.slice();
arr2 will not change if arr values are changed. That is, arr[0] = 0;, still arr2[0] == 1; // true.
Consider this:
var obj = {name: 'John', company: 'XYZ'};
var obj2 = obj; // Creates a duplicate of obj
But obj.name = 'Dave', makes obj2.name = 'Dave' as well.
How can we do a slice() operation for objects?