收藏
回答

关于小游戏建立快速启动模板里面的问题

在飞机大战的模板中的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维数组?

最后一次编辑于  2018-01-04  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 白开水
    白开水
    2018-01-04

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

    2018-01-04
    赞同 1
    回复
  • 疯狂的桃子
    疯狂的桃子
    2018-01-04

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

    2018-01-04
    赞同
    回复