I was impressed! Вроде бы все понятно и давно известно, но в голову не приходило.
Взято из Secrets of JavaScript ninja by John Resig
var store = { id: 1, cache: {}, add: function( fn ) { if ( !fn.uuid ) { fn.uuid = store.id++; return !!(store.cache[fn.uuid] = fn); } } }; function ninja(){} assert( store.add( ninja ), "Function was safely added." ); assert( !store.add( ninja ), "But it was only added once." );
Взято из Secrets of JavaScript ninja by John Resig