Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
return !!(store.cache[fn.uuid] = fn);
// =>
store.cache[fn.uuid] = fn;
return !!fn;
var Store = (function () {
var store = [];
return {
add : function (fn) {
if (typeof fn !== 'function') throw 'Function.Expected.Exception'
if (store.contains(fn)) return false;
store.push(fn);
return store.length - 1;
},
get : function (uuid) {
return store[uuid];
}
};
})();
function ninja(){}
// надо сравнивать через ===, потому что (0 == false)
assert( store.add( ninja ) !== false, "Function was safely added." );
assert( store.add( ninja ) === false, "But it was only added once." );
assertThrow( store.add( 'string' ), 'Function.Expected.Exception');
Functions are almost objects