关于小游戏建立快速启动模板里面的问题
发布于 7 年前 作者 taoguiying 3490 次浏览 来自 问答

在飞机大战的模板中的pool.js文件中,有以下代码

const __ = {

poolDic: Symbol(‘poolDic’)

}

/**

* 简易的对象池实现

* 用于对象的存贮和重复使用

* 可以有效减少对象创建开销和避免频繁的垃圾回收

* 提高游戏性能

*/

export default class Pool {

constructor() {

this[__.poolDic] = {}

}

/**

  * 根据对象标识符

  * 获取对应的对象池

  */

getPoolBySign(name) {

return this[__.poolDic][name] || ( this[__.poolDic][name] = [] )

}

……

}

请问Pool类的构造函数中this[__.poolDic] = {}这段代码怎么理解?__.poolDic是由Symbol(‘poolDic’)得到的

唯一标识,this[__.poolDic]是什么呢?是一个数组?getPoolBySign方法中的this[__.poolDic][name]又怎么理解是一个2维数组?

2 回复

poolDic 这个命名是一个简写,完整的命名可以想象到是 poolDictionary,是一个用来管理对象的 key-value 字典,其中 key 是对象的 name(对象的一个标识符),value 就是这个对象的 reference。也就是说这段代码将 Pool 对象实例的 __.poolDic 属性初始化为一个空对象,然后在游戏运行过程中不断地往这个 dictionary 里 set 对象,再在需要的时候通过 getPoolBySign 获取。

谢谢白开水耐心解答小白问题,么么哒!

回到顶部