JavaScriptで関数をキーとして使用したいと考えています。私はjsオブジェクトのために、関数が "toString"形式に変換されることを知っています。 2つの関数が同じ本体を持つ場合には問題です。関数はjavascriptマップコレクションの有効なキーですか?
var a = function() {};
var b = function() {};
var obj={};
obj[a] = 1;
obj[b] = 2;
obj[a]
の値は2
が含まれています。
Map
を使用するとうまくいきます。
var a = function() {};
var b = function() {};
var map = new Map();
map.set(a, 1);
map.set(b, 2);
map.get(a)
の値は1
とmap.get(b)
、2
を返します。
これはすべてのブラウザでサポートされている標準的な動作ですか、これはクロムブラウザのマップコレクションの実装ですか?これを中継することはできますか?どのように機能がマップにハッシュされるのですか?