如何从Factory函数返回所有属性

时间:2014-02-22 18:46:03

标签: coffeescript

考虑到以下构造函数,CoffeeScript以这样的方式编译,即只返回最后的两个函数。

如何返回每个属性,以便我可以直接访问使用此工厂创建的对象的属性?

createPerson = (firstName, lastName, age) ->
  firstName = firstName
  lastName = lastName
  age = age

  sayHi: ->
    console.log "Hi there"

  sayAge: ->
    console.log "My age is #{age}"

这很容易使用CoffeeScript的Class系统实现,但在这种情况下,我正在尝试更简单的方法,并且令人惊讶地未能找到一种方法。

感谢。

1 个答案:

答案 0 :(得分:1)

通常你只是在CoffeeScript中使用class而不是自己尝试:

class Person
  constructor: (@firstName, @lastName, @age) ->
  sayHi: ->
    console.log "Hi there"
  sayAge: ->
    console.log "My age is #{@age}"

然后使用new Person创建新人:

p = new Person('Pancakes', 'McGee', 42)

请注意构造函数函数定义和@内的sayAge实例变量。