2012-03-26 35 views
1

を通じて私は、次のCoffeeScriptがありますCoffeeScriptのクラス - ループ継承されたオブジェクトの配列

class Vehicles 
    constructor: (@name) -> 

class Car extends Vehicles 
    setId: (@id) -> 
    setName: (@name) -> 

class Truck extends Vehicles 
    setId: (@id) -> 
    setName: (@name) -> 

m3 = new Car 
m3.setId 2 
m3.setName 'BMW M3' 

m5 = new Car 
m5.setId 4 
m5.setName 'BMW M5' 

「車」のオブジェクトは、データの配列から動的に生成されます。

Vehiclesクラスでは、すべてのCarオブジェクトをループして個々のプロパティにアクセスするにはどうすればよいですか?

ありがとうございました!

答えて

2

Rubyとは異なり、CoffeeScriptでは、クラスをインスタンス化するときには裏目のないコードは実行されません。 Carコンストラクタを使用して、自分の話している機能を追加する必要があります。だから、例えば、Vehicles.carsとして、すべての車のリストを維持するために、次のように記述します。

class Vehicles 
    @cars = [] 
    constructor: (@name) -> 

class Car extends Vehicles 
    constructor: -> 
    Vehicles.cars.push @ 
    setId: (@id) -> 
    setName: (@name) -> 

をそれらを反復処理し、それらのすべてのプロパティを表示するには:

console.log(car.id, car.name) for car in Vehicles.cars 
+0

素晴らしいを!ありがとうございました :) – dzm

関連する問題