實現了一個簡單的物件池,方便在物件數量不多的情況下複用物件:
//size為物件池最大物件數量,fCreate為物件的建構函式 //返回值是一個包含get方法的物件,本質是特定物件的objectPool function objectPoolFactory(size,fCreate){ var pool = []; function get(){ var res == null; var noUses = pool.filter(function(item){ return item.inUse === false; }); if(noUses && noUses.length){ noUses[0].inUse = true; res = noUses[0]; } else{ if(pool.length < size){ res = fCreate(arguments); pool.push(res); } } return res; } return { get: get } }