在JavaScript中修改对象内部函数中定义的数组
我已定义对象:在JavaScript中修改对象内部函数中定义的数组,javascript,arrays,object,Javascript,Arrays,Object,我已定义对象: var obj = { arr: [{prop1: 1}, {prop2: 2}] } 对象被发送到函数以添加一些元素: fnc(obj); 其中fnc看起来像: var fnc = function(p) { p.arr.push({prop3: 3}); // doesn't work p.arr[0].prop1 = 2; // works p.arr.length = 0; // works } 问题是,我可以更改obj数组的当前对象
var obj = {
arr: [{prop1: 1}, {prop2: 2}]
}
对象被发送到函数以添加一些元素:
fnc(obj);
其中fnc看起来像:
var fnc = function(p) {
p.arr.push({prop3: 3}); // doesn't work
p.arr[0].prop1 = 2; // works
p.arr.length = 0; // works
}
问题是,我可以更改obj数组的当前对象,但不能添加任何元素。
如何向该数组中添加更多在该函数外部可见的元素?这对我很有用。为什么你认为它不会,你能给我们一个明确的例子说明它是如何失败的吗?代码对我来说很好。只需在push语句后放置一个断点,然后检查对象是否已添加到数组中。为什么要执行
p.arr.length=0
?作为一个有效的例子?正在清空你的阵列。。。