我是 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
,第一个是 key x
,第二个是 keys 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
但仍然出现相同的错误。
我可以用这个解决它:
e('')
.color('rgb(255,0,0)')
.attr(
x: 20,
y: 100,
w: 10,
h: 100)
如果我在 之后删除换行符.attr(
,那么我在第一个示例中会得到相同的代码,这不是我想要的。
现在我想知道我是否误解了 CoffeeScript 语法中的一些要点,或者其中确实有一些奇怪的东西。还是我在 CoffeeScript 中发现了一个错误?有任何想法吗?
我正在使用 CoffeeScript 1.3.1