2011-02-05 60 views
42

明確地返回對象這工作:如何在CoffeeScript中

myfunc =() -> 
    id: 3 
    name: 'myname' 

但我想明確有關返回對象。

myfunc =() -> 
    return 
     id: 3 
     name: 'myname' 

但我得到「意外的INDENT」錯誤。上面的代碼有什麼問題?

+1

請參閱https://github.com/jashkenas/coffee-script/issues/1263。 – 2011-12-21 09:27:56

+2

你最好不要明確地返回它,因爲咖啡標記總是隱含地返回東西。明確地做到這一點不僅是多餘的,而且可能會誘使讀者相信它有所作爲,並且沒有顯式返回值的函數將會像JS中那樣返回`undefined`。 – 2013-01-13 22:24:00

回答

84
myFunc = -> 
    return { 
    id : 3 
    name : 'myname' 
    } 

myFunc = -> 
    return {} = 
    id : 3 
    name : 'myname' 

myFunc = -> 
    # return 
    id : 3 
    name : 'myname' 
10

你應該把返回的值在同一行或()把它包:

myFunc =() -> 
    return id:3, name:'myname' 

myFunc =() -> 
    return (
    id: 3 
    name: 'myname' 
) 
1

以前的答案是正確的。這工作太:

myFunc =() -> 
    { 
     id: 3 
     name: 'myname' 
    } 
2

我認爲最好的辦法是

myFunc = -> 
    return (
    id: 3 
    name: 'myname' 
) 

,因爲它適合函數式編程的理念。