考虑到以下构造函数,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系统实现,但在这种情况下,我正在尝试更简单的方法,并且令人惊讶地未能找到一种方法。
感谢。
答案 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
实例变量。