我环顾四周,发现了一些问题,这些问题使用-a-string-to-define-the-class-name和 dynamic-class-generation-in-coffeescript>但它们都没有完全解决我的问题,所以我我想知道我在解决问题的方法中是否犯了一些根本性的错误。
在下面的循环中,我正在遍历从 JSON 解析的一些数据。对于每组数据,我想class Robot
用string = new Robot
wherestring
是一个字符串来扩展我的数据。
目前我的代码没有产生任何错误,并且成功地创建了新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