Mi piacerebbe utilizzare le funzioni come chiavi in un oggetto javascript. I seguenti lavori, almeno in Chrome:Le funzioni sono chiavi valide per le proprietà dell'oggetto javascript?
var registry = {};
function Foo(){ };
function Bar(){ };
registry[Foo] = 42;
registry[Bar] = 43;
alert(registry[Foo] + " < " + registry[Bar]);
È coperto dallo standard? Con quale browser è supportato?
Beh, ha funzionato in Chrome. Quindi potrebbe funzionare in Safari e Firefox –
penso che sia come avvisare una funzione, in qualche modo il motore la analizza come una stringa perché è permissiva ... Ma direi che non è una buona idea, a meno che non la lanci come stringa prima (è possibile che ciò mi chieda) – Sebas
Le chiavi di qualsiasi tipo di qualsiasi oggetto del dizionario devono avere un'operazione == ben definita. Tale operazione non può essere definita per le funzioni (http://en.wikipedia.org/wiki/Rice%27s_theorem). –