2014-09-26 57 views
4

我对咖啡标记很陌生。那么这个错误究竟意味着什么?Coffeescript'错误:无效的对象键'

这是类

class Animation 
    constructor: (t) -> 
     @startTime: t 

我试图设定,让这个类有一个成员开始时间初始化施工期间吨。我做错了吗?

回答

7

您的代码正在构造函数中创建一个对象(并且不保存任何位置的参考),其密钥为@startTime。发生错误的原因是@不是对象键的有效字符。

试试这个:

class Animation 
    constructor: (@startTime) -> 

下面是生成的JavaScript:

var Animation; 

Animation = (function() { 
    function Animation(startTime) { 
    this.startTime = startTime; 
    } 

    return Animation; 

})(); 

在这里你可以看到语法你想要做什么:http://coffeescript.org/#classes

这里的您错误和无意使用的语法:http://coffeescript.org/#literals(标题为“Objects and Arrays”部分)

+0

我以为@符号创建了一个成员,而只是初始化一个键时,该键为该函数创建了一个局部变量。我将如何在构造函数中创建一个局部变量? – FatalCatharsis 2014-09-26 17:22:51

+2

@FatalCatharsis:'@startTime = t'会创建一个成员,'k:v'形式的东西只是伪装成的{{:v}',所以'@startTime:t'就是试图写'{@ startTime:t}'这是一个语法错误。 – 2014-09-26 17:27:50

+0

啊,有趣。这使得更多的意义,谢谢! – FatalCatharsis 2014-09-26 17:41:26

相关问题