Because when you have an object in a variable, the variable doesn't contain object's data. Instead, it contains a reference to object's data in memory.
Then, var destination = this.path;
just copies the reference, not the data. And if you modify one of the variables, both will be affected.
If you want to copy object's data, you can use
function extend(obj, props) {
for(var i in props) if(props.hasOwnProperty(i))
obj[i] = props[i];
}
var copy = extend({}, obj);
Or you can also try inheritance:
var copy = Object.create(obj);
Or in this case, since it's an array, better use slice
:
var copy = arr.slice();