oop - Coffeescript 对象作为私有(private)成员,可能吗?

标签 oop coffeescript

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

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

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

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

最佳答案

希望我理解你的问题。

在 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# 中一样是私有(private)的,我建议不要使用类,但是:

Zoo = (animals) ->

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

关于oop - Coffeescript 对象作为私有(private)成员,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30215270/

相关文章:

javascript - Backbone 类模型不继承默认值

javascript - 可以使用解构赋值来影响 CoffeeScript 中的投影吗?

testing - Backbone : how to test preventDefault to be called without testing directly the callback

c# - 使用不同的构造函数实例化新对象

jQuery done() 似乎在发送请求之前触发

javascript - 属性不是函数异常

c++ - 卡在访问方法 C++

java - OO 设计——这个设计有缺陷吗?

Python 使用错误数量的参数调用类方法

java - 我需要用 try/catch/finally block 包围 fileInputStream.close 吗?它是如何完成的?