优点: 提升性能
缺点: 占用内存
总结: 内存换性能
应用场景: 需要频繁创建和销毁开销大的操作, 如DOM元素, 复杂对象
const objectPool = (() => {
const pool = []
return {
// 创建
create() {
if (pool.length > 0) return pool.pop()
const div = document.createElement('div')
document.body.appendChild(div)
return div
},
// 回收
recycle(item) {
pool.push(...item)
}
}
})()
// 通过每次的搜索从接口获取数据并渲染(频繁添加和删除DOM)
function search() {
objectPool.recyle(divArr) // 回收之前的数据
const divArr = [] // 清空当前div数组
const apiData = [] // 接口数据
apiData.forEach((item,index) => {
const div = objectPool.create()
div.innerHtml = item.title || `第${index}个div`
divArr.push(div)
})
}