Классы CoffeeScript - цикл по массиву унаследованных объектов - PullRequest
1 голос
/ 26 марта 2012

У меня есть следующий код:

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'

Объекты 'Car' будут генерироваться динамически из массива данных.

В классе «Транспортные средства», как бы я прошел через все объекты Car и получил доступ к каждому отдельному свойству?

Спасибо!

1 Ответ

2 голосов
/ 26 марта 2012

В отличие от 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
...