Javascript 未重新分配代理对象

Javascript 未重新分配代理对象,javascript,proxy,Javascript,Proxy,目前正在使用代理进行一些工作,这些代理要求将所述代理存储在一个数组中,然后在调用某个函数时从该数组访问。该函数的作用是将对象的值重新分配给完全不同的对象。 即: 理论上,a现在应该是2,但它仍然是原始代理。然而,有趣的是,如果我为代理的一个属性赋值,即:proxies[index]['prop']=val,那么当您检查a时,属性赋值就会显示出来 有人能理解这里发生了什么吗?您只需为数组的一个元素赋值 函数交换(代理、索引、val){ 代理[索引]=val; } var a=新代理({},{})

目前正在使用代理进行一些工作,这些代理要求将所述代理存储在一个数组中,然后在调用某个函数时从该数组访问。该函数的作用是将对象的值重新分配给完全不同的对象。 即:

理论上,
a
现在应该是2,但它仍然是原始代理。然而,有趣的是,如果我为代理的一个属性赋值,即:
proxies[index]['prop']=val
,那么当您检查
a
时,属性赋值就会显示出来


有人能理解这里发生了什么吗?

您只需为数组的一个元素赋值

函数交换(代理、索引、val){
代理[索引]=val;
}
var a=新代理({},{});
var代理=[];
代理推送(a);
ProExchange(代理,0,2);
控制台日志(a、a类型);

console.log(代理类型[0],代理类型[0])您只需为数组的元素赋值

函数交换(代理、索引、val){
代理[索引]=val;
}
var a=新代理({},{});
var代理=[];
代理推送(a);
ProExchange(代理,0,2);
控制台日志(a、a类型);
console.log(代理类型[0],代理类型[0])请添加“Handler stuff”以及您对构造的期望值。我不相信“Handler stuff”与值重新分配相关,如果重新分配发生在
a
实例化之后,则可以。请添加“Handler stuff”以及您对构造的期望值。我不相信“Handler stuff”如果在实例化
a
之后立即进行重新分配,则与值重新分配fine相关。
function proxChange(proxies, index, val) {
    proxies[index] = val;
}

var a = new Proxy({}, {//Handler stuff});
var proxies = [];
proxies.push(a);
proxChange(proxies, 0, 2);