我环顾四周,发现了一些问题,这些问题使用-a-string-to-define-the-class-name和 dynamic-class-generation-in-coffeescript>但它们都没有完全解决我的问题,所以我我想知道我在解决问题的方法中是否犯了一些根本性的错误。
在下面的循环中,我正在遍历从 JSON 解析的一些数据。对于每组数据,我想class Robot用string = new Robotwherestring是一个字符串来扩展我的数据。
目前我的代码没有产生任何错误,并且成功地创建了新Robots的,但由于它们的名称是一个字符串,试图访问它们robot1.move()或robot2.doSomeOtherClassyThing()不起作用并告诉我它们是未定义的。
这似乎不需要冗长的辅助函数来使其工作。我在这里想念什么?
 createRobots: -> # process robot commands
        createXcoord = missionData.xCoord
        createYcoord = missionData.yCoord
        createOrient = missionData.orientation
        createInstru = missionData.robotInstructions
        for command in createOrient
          robot = 'robot' + (_i + 1)
          name = robot
          robot = new Robot \ # create named Robot 
            name
          , createXcoord[_i] 
          , createYcoord[_i] 
          , createOrient[_i] 
          , createInstru[_i]
          console.log(robot)
我认为正在发生的事情是变量在声明"robot = 'string'时被覆盖robot = new Robot。
我希望的结果是string1 = new Robot,"string2 = new Robot"。那有意义吗?jsfiddle.net/7EN5y/1