【发布时间】:2012-05-07 13:57:56
【问题描述】:
我是 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 中的括号,但仍然出现相同的错误。
我可以用这个解决它:
e('')
.color('rgb(255,0,0)')
.attr(
x: 20,
y: 100,
w: 10,
h: 100)
如果我在 .attr( 之后删除换行符,那么我在第一个示例中会得到相同的代码,这不是我想要的。
现在我想知道我是否误解了 CoffeeScript 语法中的某些要点,或者其中确实有一些奇怪的东西。还是我在 CoffeeScript 中发现了一个错误?有什么想法吗?
我使用的是 CoffeeScript 1.3.1
【问题讨论】:
标签: coffeescript