es6对象方法简写直接省略function关键字和冒号,用方法名(参数){...}形式声明,支持参数、this绑定及完整函数特性,但不适用于计算属性名、getter/setter、异步修饰符省略等场景。

ES6 对象方法简写直接去掉 function 关键字和冒号 :,用 方法名(参数) { ... } 形式声明,语法更紧凑,语义更清晰。
基本写法:去掉 function 和冒号
在对象字面量中定义普通函数时,只需保留方法名、括号和函数体:
- ES5 写法:
say: function() { return 'Hi'; } - ES6 简写:
say() { return 'Hi'; } - 带参数也一样:
greet(name) { return `Hello, ${name}`; }
支持完整函数特性
简写方法不是语法糖,它完全支持函数的标准行为:
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
- 可接收任意参数(含默认值、剩余参数):
log(...msgs) { console.log(...msgs); } -
this指向调用该方法的对象(非箭头函数,不绑定词法this) - 可包含多条语句、条件逻辑、返回值等:
init() { this.ready = true; return this; }
常见限制要避开
简写只适用于对象字面量中的普通函数,以下情况不能省略 function:
- 计算属性名需显式写
function:[key]() {}❌ 错误;应写[key]: function() {}✅ - 异步方法必须保留
async修饰符:async fetchData() {}✅,不能写async: function() {} - getter/setter 必须带
get或set:get name() { return this._name; },不可简写为name() { ... } - 不能用于类外部的独立函数声明或箭头函数
搭配模板字符串实现动态方法名
虽不支持纯计算属性简写,但可用模板字符串 + 方法简写组合:
- ✅ 正确:
{ [`fetch${type}`]() { return fetch(`/api/${type}`); } } - 适用于 API 封装、插件方法注册等场景,兼顾灵活性与简洁性










