当前位置: 首页 > news >正文

ES6对象方法简写:更简洁的代码写法

ES6 中为对象字面量引入的「方法简写」语法,这是 ES6 简化对象写法的重要特性之一,能让对象方法的定义更简洁。

方法简写的核心概念

在 ES5 及更早版本中,定义对象方法需要明确写出属性名: 函数的形式;而 ES6 的方法简写则允许直接省略function关键字和冒号,让写法更接近类的方法定义,更简洁直观。

1. 基础用法对比

先通过对比看核心区别:

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
2. 结合计算属性名的进阶用法

方法简写还能和 ES6 的「计算属性名」结合,定义动态名称的方法:

javascript

运行

const methodName = "greet"; const person = { name: "李四", // 动态方法名 + 方法简写 [methodName + "World"]() { console.log(`${this.name}:Hello World!`); } }; person.greetWorld(); // 输出:李四:Hello World!
3. 注意事项
  • 方法简写定义的是普通函数,不是箭头函数,因此this的指向遵循普通对象方法的规则(指向调用该方法的对象);
  • 不能在方法简写中使用箭头函数替代(箭头函数没有自己的this,会绑定外层作用域的this),比如下面的写法是错误的(或不符合预期):

    javascript

    运行

    const badObj = { name: "王五", // 错误示范:箭头函数的this不指向badObj sayHello: () => { console.log(this.name); // 输出:undefined } };
  • 方法简写仅适用于对象字面量,不能用于对象原型或类的静态方法之外的场景(类的方法本身就是类似简写的形式)。

总结

  1. ES6 方法简写的核心是省略对象方法定义中的: function,直接用方法名() { ... }形式,简化代码书写;
  2. 简写方法的this指向调用该方法的对象,区别于箭头函数;
  3. 可结合计算属性名实现动态方法名的简洁定义,是日常开发中最常用的 ES6 特性之一。
http://www.jsqmd.com/news/250356/

相关文章:

  • ACE-Step模型优势剖析:3.5B参数如何平衡质量与速度
  • TurboDiffusion为何快?SageSLA注意力机制深度解析
  • Z-Image-Turbo极速出图实战:6秒生成,成本低至1毛
  • IndexTTS-2方言支持体验:云端快速测试,无需本地资源
  • NotaGen节日营销:快速生成品牌定制圣诞音乐的秘诀
  • 2026 年程序员接单全指南:平台这么多,别再选错了
  • 8GB内存电脑跑LoRA:云端GPU加持,性能提升10倍
  • Qwen3-Embedding-4B成本分摊:多团队使用计量部署教程
  • MiniMax 开源了一个新的 Coding Agent 评测集,叫 OctoCodingBench,用以去评测 Coding Agent 在完成任务的过程中,有没有遵守规矩?
  • MiDaS开箱即用镜像:免去CUDA烦恼,5分钟部署
  • DeepSeek-OCR论文精读:用视觉压缩突破长文本处理瓶颈|基于DeepSeek-OCR-WEBUI实战
  • MiDaS深度解析:1元体验SOTA模型,技术小白也能懂
  • 基于改进粒子群算法的多无人机协同航迹规划(Matlab代码实现)
  • 4G 显存即可运行!免环境搭建的 AI 电商换装工具实操指南
  • 强烈安利9个AI论文工具,本科生轻松搞定论文写作!
  • UI-TARS-desktop案例解析:Qwen3-4B-Instruct在金融风控中的应用
  • Qwen-Image-Layered vs Photoshop:实测对比3种图层方案,2小时搞定选型
  • 程序员接单实用指南:平台选择、真实体验与避坑思路
  • 部署bge-large-zh-v1.5省心方案:云端GPU按小时计费,1块钱起
  • Open Interpreter物理仿真:数值计算脚本生成实战
  • Qwen3-1.7B模型加载异常?常见问题全解
  • Scrapy与Splash结合爬取JavaScript渲染页面
  • 实战演示:用麦橘超然Flux生成赛博朋克风城市街景
  • Fun-ASR语音识别系统搭建:基于钉钉通义大模型的实操案例
  • Qwen3-14B实战教程:从零开始部署企业级智能客服系统
  • GPT-OSS-20B-WEBUI参数调优:max_tokens与temperature设置建议
  • 5个必备翻译工具推荐:HY-MT1.5-1.8B镜像免配置上手
  • Qwen2.5-0.5B推理费用高?本地运行降本增效实战指南
  • Supertonic极速TTS实战:为技术类乐理博文注入声音
  • 轻量翻译模型HY-MT1.5-1.8B:WMT25测试集表现分析