2012-03-26 12 views
1

Ich habe folgende Coffee:Coffee Klassen - Schleife durch Anordnung von Objekten geerbt

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' 

Die Objekte ‚Car‘ wird dynamisch von einer Anordnung von Daten erzeugt werden.

Wie würde ich in der Klasse Fahrzeuge alle Autoobjekte durchlaufen und auf jede einzelne Eigenschaft zugreifen?

Vielen Dank!

Antwort

2

Im Gegensatz zu Ruby führt CoffeeScript bei der Instanziierung einer Klasse keinen Code hinter den Kulissen aus; Sie müssen die Funktionalität, über die Sie sprechen, mit dem Car Konstruktor hinzufügen. So zum Beispiel eine Liste aller Autos als Vehicles.cars zu halten, würden Sie schreiben:

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

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

durch sie durchlaufen und zeigen alle ihre Eigenschaften:

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

Awesome! Vielen Dank :) – dzm

Verwandte Themen