目前正在使用Proxies进行一些工作,该代理要求将所述代理存储在一个数组中,然后在调用某个函数时从该数组访问。有问题的函数用于将对象的值重新分配给完全不同的东西。 即:
function proxChange(proxies, index, val) {
proxies[index] = val;
}
var a = new Proxy({}, {//Handler stuff});
var proxies = [];
proxies.push(a);
proxChange(proxies, 0, 2);
理论上,a
现在应该只是2,但它仍然是原始代理。但有趣的是,如果我为代理的属性分配一个值,即:proxies[index]['prop'] = val
,则在您检查a
时会显示属性分配。
有人能理解这里发生了什么吗?
答案 0 :(得分:0)
您只需为数组元素指定一个值。
ptr[n] = &arr[0][0]; // where n is a value that makes sense