【问题标题】:Function won't return right just because of braces? [duplicate]函数不会因为大括号而正确返回? [复制]
【发布时间】:2019-09-09 18:45:39
【问题描述】:

为什么箭头函数周围的大括号会在下一个 case 为真时产生 undefined。

    function greater(n){
    return (m)=>{m>n};
     }
   >greater(10)(11)
   <undefined

    function great(n){
    return m=>m>n;
    } 
   <great(10)(11)
   >true

【问题讨论】:

标签: javascript function higher-order-functions


【解决方案1】:

箭头函数有一个隐式返回,这意味着如果你不使用{} 包裹它们的主体,那么你不需要使用return 关键字。您的函数返回undefined,因为您没有提供返回值。您需要删除花括号或添加 return 关键字:

function greater(n){
    return (m)=>{return m>n};
}

最后要注意的是,如果你想隐式返回一个对象,花括号将被视为函数体,因此不会返回任何内容。在这种情况下,您需要将对象括在括号中:

const wrong = () => { test: true }
const right = () => ({ test: true })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2016-06-25
    • 2015-06-29
    相关资源
    最近更新 更多