Coffeescript Object作为私人会员,是否可能?

时间:2015-05-13 12:48:09

标签: oop coffeescript

我习惯于在Java中定义一个可以包含其他对象作为成员的对象,例如(psuedocode):

class Zoo{
private List<Animal> animals;
}
class Animal {
private double weight;
private double height;
private double species;
}

然后你可以有一个动物园的构造函数,它接受X动物并将它们添加到动物集合中并拥有它自己的方法。

在coffeescript中我似乎无法做到这一点,这是javascript的限制吗?

1 个答案:

答案 0 :(得分:4)

希望我理解你的问题。

在Coffeescript中你可以写

class Animal
  name: ''

class Zoo
  animals: [] #notice you do not specify type!

  constructor: (animalList) ->
    @animals = animalList #and animal list is an array of Animal class instances


zoo = new Zoo([new Animal()])
console.log(zoo.animals.length) #should be eq to 1

如果您希望动物与Java或C#中的动物相同,我建议不要使用类,但是:

Zoo = (animals) ->

  return {
    getAnimals: -> animals
    addToAnimals: (animal) -> animals.push(animal)
  }