2017-06-12 6 views
1

プロキシを使用して、プロキシを配列に格納してから、特定の関数が呼び出されたときにその配列からアクセスするプロキシを使用しています。問題の関数は、オブジェクトの値を全く別のものに再割り当てするように動作します。 すなわち:理論的にはプロキシオブジェクトが再割り当てされていないJavaScript

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'] = valaを調べるとプロパティの割り当てが表示されます。

ここで何が起こっているのか理解できますか?

+0

同様* "ハンドラーのもの" *と何が建設に期待を追加してください。 –

+0

'a'がインスタンス化された直後に再割り当てが行われた場合、値が再割り当てされるので、" Handler stuff "は意味がありません。 – dbr

答えて

0

配列の要素に値を代入するだけです。

function proxChange(proxies, index, val) { 
 
    proxies[index] = val; 
 
} 
 

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

 
console.log(typeof a, a); 
 
console.log(typeof proxies[0], proxies[0]);

関連する問題