ES6方法简写语法省略function关键字和冒号,支持参数、默认值、剩余参数,this指向正常,不可用箭头函数替代;可与计算属性名组合,但getter/setter有独立简写形式。

在对象字面量中定义方法时,ES6 引入了**方法简写语法(Method Shorthand)**,省略 function 关键字和冒号,让代码更简洁、可读性更强。
基本写法:省掉 function 和冒号
传统写法需要显式使用 function 关键字和函数表达式语法:
sayHello: function() {
return 'Hello';
}
};
用方法简写后,直接写函数名加括号:
const obj = {sayHello() {
return 'Hello';
}
};
支持参数、箭头函数不适用、this 指向正常
简写方法可以带参数,也支持默认值、剩余参数等现代函数特性:
getData(id) { ... }log(...msgs) { console.log(msgs); }fetchWithTimeout(timeout = 5000) { ... }
注意:不能用箭头函数替代,因为简写方法会正确绑定 this 到当前对象;而箭头函数不绑定 this,会继承外层作用域的 this,导致意外行为。
可与其他简写共存:计算属性名 + 方法简写
方法简写可与计算属性名(computed property names)组合使用:
const methodName = 'run';const obj = {
[methodName]() {
return 'started';
}
};
obj.run(); // 'started'
不适用于 getter/setter,但有对应简写形式
getter 和 setter 也有专属简写,不走“方法简写”路径:
const obj = {get length() { return this.items.length; },
set name(value) { this._name = value.toUpperCase(); }
};
它们本身就不需要 function,属于独立语法,但容易和方法简写混淆——记住:带 get/set 关键字的,不是方法简写,是访问器简写。










