如何破坏javascript数组引用

时间:2014-10-26 21:33:17

标签: javascript node.js pass-by-reference pass-by-value

如果我创建一个数组和一个对象。然后将对象分配给数组的索引。我可以在不触及数组的情况下编辑对象的属性。如果我尝试通过数组访问它,则会反映更新的属性。

然后我想删除该对象并让数组清除这些索引。我希望我可以通过将其设置为null来实现此目的。看起来似乎并非如此。下面简化了nodejs控制台输出

> var ar = [[],[]]
undefined
> var cool = {story: "bro"};
undefined
> ar[0][20] = cool
{ story: 'bro' }
> cool.story = "gurl"
'gurl'
> ar[0][20]
{ story: 'gurl' }
> cool = null
null
> ar[0][20]
{ story: 'gurl' }

1 个答案:

答案 0 :(得分:-3)

for(p in obj) if(obj.hasOwnProperty(p)) delete obj[p];
obj = null;

我现在正打电话,所以无法轻易测试,但这应该可行。