Какой стиль лучше всего подходит для программирования на основе классов в CoffeeScript? - PullRequest
3 голосов
/ 23 ноября 2011

Какой из этих альтернатив является лучшим стилем для программирования на основе классов в 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 ]

3 голосов
/ 23 ноября 2011

Хм.№ 1 это красиво и просто.# 3 кратко показывает ожидаемый формат аргументов (хотя значения по умолчанию на самом деле не имеют смысла - если вы не ожидаете, что человек будет назван "" или ему будет 0 лет).

Я бы порекомендовал вместо этого использовать хеш:

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

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

Это освобождает вас от необходимости запоминать порядок аргументов и делает ваши вызовы экземпляров более самодокументируемыми.

(Я использую этот подход в некоторых примерах CoffeeScript: ускоренная разработка JavaScript .)

1 голос
/ 23 ноября 2011

# 1 в порядке, но не определяют значения по умолчанию.

# 2 и # 3 являются эквивалентами, если класс не большой, я бы использовал # 3.

Я думаю, что № 4 излишне сложен.

0 голосов
/ 23 ноября 2011

Первый путь более понятен. Я всегда использую этот подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...