私は CoffeeScript が初めてで、その構文を理解するのに苦労しています。
たとえば、次の関数呼び出しでは:
e('')
.color('rgb(255,0,0)')
.attr( x: 20,
y: 100,
w: 10,
h: 100 )
これにより、キー x、y、w、h を持つオブジェクトをattr
メソッドに渡す JS コードがコンパイルされることを期待しています。しかし、このコードは実際には次のようにコンパイルされます。
e('').color('rgb(255,0,0)').attr({
x: 20
}, {
y: 100,
w: 10,
h: 100
});
2 つのオブジェクトを に渡していますattr
。最初は keyx
で、2 番目は key y
、w
、およびh
です。x が他のキーから分離されているのに、他のキーが分離されていない理由がわかりません。
attr
メソッドに1つのオブジェクトを渡したいので、これを試しました:
e('')
.color('rgb(255,0,0)')
.attr({x: 20,
y: 100,
w: 10,
h: 100})
y: 100
しかし、これにより、 place:を取得する行でコンパイルエラーが発生しますError: Parse error on line 4: Unexpected '{'
。奇妙なことに、{
4行目にはありません。括弧を削除しようとしましattr
たが、それでも同じエラーが発生しました。
私はこれでそれを解決できます:
e('')
.color('rgb(255,0,0)')
.attr(
x: 20,
y: 100,
w: 10,
h: 100)
の後に改行を削除する.attr(
と、最初の例で同じコードが得られますが、これは私が望むものではありません。
今、CoffeeScript 構文のいくつかの点を誤解しているのか、それとも本当に奇妙なものが含まれているのか疑問に思っています。または、CoffeeScript のバグを見つけましたか? 何か案は?
私はCoffeeScript 1.3.1を使用しています