So I have a class foo that has a method which returns an array bar. I have another function that calls foo.getBar and then filters the array. I want to be able to always get the original contents of bar when I use a different filter, but bing seems to be just creating a reference to bar, not a separate array. I have tried using return this.bar.valueOf(); in my function foo, still not working. When I remove items from bing they are also removed from bar. Someone please enlighten me on creating a unique array instead of a reference.
function foo(x, y, z){
    this.bar = new Array();
    ...
    this.bar = [ some , stuff , in , bar ];
    this.getBar = function getBar(){
     return this.bar; 
    }
    ...
}
var FooObject = new foo(x,y,z);
function baz(){
    var bing = FooObject.getBar();
    bing.splice(remove some pieces of the array);
}