哪种样式最适合CoffeeScript中基于类的编程?

时间:2011-11-22 22:39:53

标签: javascript coffeescript

在这些替代方案中,这是CoffeeScript中基于类编程的最佳方式吗?

# Alternative 1
class Person
  constructor: (@name, @age) ->

new Person "Peter", 19

# Alternative 2
class Person
  name: ""
  age: 0
  constructor: (@name, @age) ->

new Person "Peter", 19

# Alternative 3
class Person
  constructor: (@name = "", @age = 0) ->

new Person "Peter", 19


# Alternative 4
class Person
  constructor: (name, age) ->
    @name = name ? ""
    @age = age ? 0

new Person "Peter", 19

3 个答案:

答案 0 :(得分:3)

嗯。 #1很简单。 #3简洁地显示了参数的预期格式(虽然默认值实际上没有意义 - 除非您期望某个人被命名为"",或者0岁。< / p>

我真正推荐的是使用哈希代替:

class Person
  constructor: ({@name, @age}) ->

new Person(name: "Peter", age: 19)

这使您不必记住参数的顺序,并使您的实例化调用更加自我记录。

(我在 CoffeeScript: Accelerated JavaScript Development 中的一些示例中使用此方法。)

答案 1 :(得分:1)

#1没问题,但不确定默认值。

#2和#3是等价的,如果班级不大,我会使用#3。

我认为#4不必要地复杂。

答案 2 :(得分:0)

第一种方式更清楚。我总是使用这种方法。