我是CoffeeScript的新手,我無法理解它的一些語法。理解咖啡腳本語法
例如,在此函數調用:
e('')
.color('rgb(255,0,0)')
.attr(x: 20,
y: 100,
w: 10,
h: 100)
我期待這個編譯JS代碼經過連鍵的x,y的對象,W,H到attr
方法。但是,這段代碼實際上編譯成這樣:
e('').color('rgb(255,0,0)').attr({
x: 20
}, {
y: 100,
w: 10,
h: 100
});
它傳遞了兩個對象attr
,先用鑰匙x
,和第二連鍵y
,w
,和h
。我無法理解爲什麼x與其他鍵分開,但其他鍵不能相互分離?
因爲我想通過attr
方法一個對象,我嘗試這樣做:
e('')
.color('rgb(255,0,0)')
.attr({x: 20,
y: 100,
w: 10,
h: 100})
但是這給了我在那個y: 100
得到地方行編譯錯誤:Error: Parse error on line 4: Unexpected '{'
。奇怪的是,第4行中沒有{
。我也嘗試刪除attr
中的parens,但仍遇到相同的錯誤。
我可以用這個解決它:
e('')
.color('rgb(255,0,0)')
.attr(
x: 20,
y: 100,
w: 10,
h: 100)
如果我刪除換行符.attr(
後,然後我得到了相同的代碼在我的第一個例子,這不是我想要的。
現在我想知道我是否誤解了CoffeeScript語法中的某些要點或者其中存在真正奇怪的東西。還是我在CoffeeScript中發現了一個錯誤?有任何想法嗎?
我使用的CoffeeScript 1.3.1
當然,這是有效的。我已經有了一個工作代碼,但我想知道爲什麼編譯器會給我的第二個示例提供錯誤,如果我有幾十個元素,那麼我如何傳遞一個對象,因此我必須將其分解爲行。 – sinan 2012-04-26 19:41:58