私は次のコードを持っています
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
は常に等しいと仮定するのが安全です。