当前与代理进行一些工作,要求将所述代理存储在数组中,然后在调用某个函数时从该数组进行访问。所讨论的功能用于将对象的值重新分配给完全不同的对象。
即:
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
时会显示属性分配。任何人都可以了解这里发生了什么吗?
最佳答案
您只需为数组的元素分配一个值。