このコードでは何が起こっていますか?オブジェクトをJavaScriptのプロパティキーとして使用する
var a = {a:1};
var b = {b:2};
var c = {};
c[a] = 1;
c[b] === 1 // true!
c[b] = 2;
c[a] === 2 // true!
は、具体的には、なぜアップb
c
リターンでa
のプロパティに格納された値を使用して探していますか?
オブジェクトをJavaScriptのプロパティのキーとして使用するとはどういう意味ですか?
私はこれをChrome/NodeとFirefoxでテストしました。
現在のところ、javascriptはオブジェクトをキーとしてサポートしていないため、[オブジェクトオブジェクト]となる値を格納する文字列に変換されるため、すべてのオブジェクトにキーとして適用されますが、将来は 'Map 'は、オブジェクトをキーとして保存するために使用できるものです。 – Sushil
@Sushilの面白い音。この潜在的な将来のMapクラスに関する情報への参照はありますか?私は数分の検索の後でどこにも言及されていませんでした。 –
ECMAScript 6の将来の実装https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Mapここに行きます。さらに、非常に素晴らしいWeakMap概念(私は個人的にはそれが好きです)https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/WeakMapここでそれについて読むことができます – Sushil