1 概述
对象池维护一个装载着空闲对象的池子,将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。用于充当保存对象的“容器”的对象,被称为“对象池”(Object Pool,或简称Pool)。
2 对象池的运用场景
并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销。对生成时开销不大的对象进行池化,反而可能会出现“维护对象池的开销”大于“生成新对象的开销”,从而使性能降低的情况。但是对于生成时开销可观的对象,池化技术就是提高性能的有效策略了。
3 对象池的实现:
// 示例1 对象池的创建
var objectPoolFactory=function(createObjFn){
var pool=[],
create=function(){
var obj=pool.length>0?pool.shift():createObjFn.apply(this,arguments);
return obj;