所以我有一個類foo有一個方法,它返回一個數組欄。我有另一個函數調用foo.getBar,然後過濾數組。當我使用不同的過濾器時,我希望能夠始終獲取條的原始內容,但bing似乎只是創建對條的引用,而不是單獨的數組。我試過使用return this.bar.valueOf();在我的函數foo中,仍然沒有工作。當我從冰上移除物品時,它們也會從酒吧中移除。有人請賜教,我創建一個獨特的數組而不是參考。返回一個Javascript對象的屬性的值不參考
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);
}
我的數組包含對象,但自己不會被改變的對象,他們只需要再次添加的能力。 例如[對象福特,對象雪佛蘭,對象豐田,對象寶馬]我可能會運行巴茲只顯示美國汽車,所以我想能夠從陣列中刪除豐田和寶馬,然後運行一個方法在剩餘的對象渲染一些HTML,但如果過濾器被刪除,我希望能夠在所有數組項上再次運行渲染HTML方法。對象本身不會被更改,只是從數組副本中刪除。那麼這項工作會嗎? – Jesse 2009-08-26 14:39:36
這似乎工作感謝大家的迅速反應!這是我第一次發佈Stack Overflow,它肯定不會是我的最後一次。 – Jesse 2009-08-26 14:47:34
是的,這將工作。 – 2009-08-26 18:11:09