2016-09-20 62 views
0

我在这里读到其他一些关于它的问题,但我只是没有得到它。如何将类变量存储在内存中?

我有一些变量通过执行过程发生变化,所以我明白他们需要进入内存。

var populationManager = { 

    init: function(){ 
     Memory.PopulationManager = {}; 
     Memory.PopulationManager.nHarvesters = 0; 
     Memory.PopulationManager.nUpgraders = 0; 
     Memory.PopulationManager.nBuilders = 0; 

     Memory.PopulationManager.harvesterNameNum = 0; 
     Memory.PopulationManager.upgraderNameNum = 0; 
     Memory.PopulationManager.builderNameNum = 0; 
    }, 

    demographics: function(){ 
     if(! Memory.PopulationManager.nHarvesters) 
      this.init(); //not initialized yet 

但它告诉我,它cannot read property nHarvesters of undefined

如何制作我自己的screeps内存对象并使用它们?

+0

什么输出你得到它你在控制台做一个JSON.Stringify(Memory.PopulationManager)? –

回答

3

查看您的代码后,我发现问题是您正在检查不存在的对象的属性,并且希望您应该检查实际对象是否存在。

变化

if(! Memory.PopulationManager.nHarvesters)

if(! Memory.PopulationManager)

,并会做你需要什么。