箭头函数返回对象时必须用小括号包裹对象字面量,否则大括号被解析为函数体而隐式返回undefined;正确写法如const createuser = (name, age) => ({ name, age })。

箭头函数返回对象时,必须用小括号 () 包裹对象字面量,否则大括号会被解析为函数体,导致返回 undefined。
正确写法:用小括号包裹对象
直接返回对象需加 (),让 JS 知道这不是函数体:
const createUser = (name, age) => ({ name, age });
console.log(createUser('Alice', 30)); // { name: 'Alice', age: 30 }
常见错误:漏掉小括号 → 返回 undefined
下面写法看似简洁,实际返回 undefined:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
const createUser = (name, age) => { name, age }; // ❌ 语法合法但无返回值
// 等价于:
// () => { name, age; } → 没有 return,隐式返回 undefined
需要逻辑处理?仍可保持单行(带小括号)
只要最终表达式结果是对象,中间可用逗号运算符、三元、解构等,保持一行:
const getProfile = (id, data) => (data[id] ? { id, ...data[id] } : { id, error: 'not found' });const toPoint = ([x, y]) => ({ x, y }); // 解构 + 返回对象const withTimestamp = val => ({ val, ts: Date.now() });
注意:不能在小括号内换行写对象(严格模式下可能报错)
虽然部分环境容忍,但为兼容性和可读性,建议对象内容保持紧凑:
- ✅ 推荐:
=> ({ a: 1, b: fn(), c: x > 0 ? 'yes' : 'no' }) - ⚠️ 避免:
=> ({\n a: 1,\n b: 2\n})(易出错,破坏“一行”初衷)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










