2011-02-05 66 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' 
) 

,因为它适合函数式编程的理念。