本地离线字幕工具:剪映会员的免费平替方案
2026/10/22 5:42:09
ES6 中为对象字面量引入的「方法简写」语法,这是 ES6 简化对象写法的重要特性之一,能让对象方法的定义更简洁。
在 ES5 及更早版本中,定义对象方法需要明确写出属性名: 函数的形式;而 ES6 的方法简写则允许直接省略function关键字和冒号,让写法更接近类的方法定义,更简洁直观。
先通过对比看核心区别:
javascript
运行
// ES5 定义对象方法 const objES5 = { name: "张三", sayHello: function() { console.log("你好,我是" + this.name); }, add: function(a, b) { return a + b; } }; // ES6 方法简写 const objES6 = { name: "张三", // 省略 : function,直接写方法名+(){} sayHello() { console.log("你好,我是" + this.name); }, add(a, b) { return a + b; } }; // 调用方式完全一致 objES5.sayHello(); // 输出:你好,我是张三 objES6.sayHello(); // 输出:你好,我是张三 console.log(objES6.add(2, 3)); // 输出:5方法简写还能和 ES6 的「计算属性名」结合,定义动态名称的方法:
javascript
运行
const methodName = "greet"; const person = { name: "李四", // 动态方法名 + 方法简写 [methodName + "World"]() { console.log(`${this.name}:Hello World!`); } }; person.greetWorld(); // 输出:李四:Hello World!this的指向遵循普通对象方法的规则(指向调用该方法的对象);this,会绑定外层作用域的this),比如下面的写法是错误的(或不符合预期):javascript
运行
const badObj = { name: "王五", // 错误示范:箭头函数的this不指向badObj sayHello: () => { console.log(this.name); // 输出:undefined } };: function,直接用方法名() { ... }形式,简化代码书写;this指向调用该方法的对象,区别于箭头函数;