我有以下代码
class A
constructor: (@message) ->
parse: (paramNames...) ->
params = @message.split(/\s/)
for value, i in params
@[paramNames[i]] = value
a = new A('foo bar dim sum')
a.parse 'first', 'second', 'third', 'fourth'
console.log a
输出
{
message: 'foo bar dim sum',
first: 'foo',
second: 'bar',
third: 'dim',
fourth: 'sum'
}
一切正常,我只是觉得该parse
方法可以做得更干净一些。好像我做错了什么:S
parse()
永远不会被用户调用;它仅在我正在编写的库内部使用。可以安全地假设paramNames.length
并且params.length
将永远是 equal。