2014-09-26 54 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

相關問題