2012-02-01 90 views
2

說我已經得到了代碼:CoffeeScript的調用返回的對象的方法(鏈接)

cat = { 
    feed: (food) -> 
     alert "cat ate #{food}" 
} 

pets = { 
    "maximus": cat 
} 

getPet = (name) -> 
    pets[name] 

我如何可以調用由「getPet」貓對象返回的「飼料」的方法?這不是一個有效的代碼:

getPet "maximus" feed "Fish" 

在普通的JavaScript就應該是這樣的:

getPet("maximus").feed("Fish"); 
+2

我會留下評論,因爲我真的不太瞭解CS,但是使用他們的在線CS評估器,我把它和'(getPet「maximus」)一起使用。更熟悉的人可能有更好的方法。 – 2012-02-01 15:38:13

+0

謝謝!至少是這樣的! – 2012-02-01 15:47:52

+1

好的。我看到的其他方法似乎只是簡單地重新引入'()'。 'getPet(「maximus」)。feed「Fish」' – 2012-02-01 15:49:03

回答

4

你不能沒有上鍊的最左邊的部分括號鏈接。

getPet('maximus').feed 'fish' 
+0

很遺憾。我有很長的序列。但是,無論如何,括號都可以!謝謝。 – 2012-02-01 15:57:45

+0

爲什麼在CS中刪除括號還有一個原因並不是一件好事。我真的希望這個「功能」不在CS中。現在,就是這樣,我們的團隊已經決定將它們從if語句的謂詞中分離出來,但將它們留在其他地方。我認爲它傷害了可讀性,使它們不起作用,除了幾次擊鍵外,什麼也不存在。 – 2012-02-01 21:15:31

+0

對於我來說,我認爲一個好的經驗法則就是在分配任何方法返回時使用括號,所以a = runMethod(x),但是我避免包含它們。如果有多個測試,我只在條件中使用它們。 – Sandro 2012-02-01 21:33:09