You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中对象前三点(...)语法含义咨询及文档查询

对象展开语法(Object Spread Syntax)详解

嘿,你遇到的这个三个点的语法叫做对象展开语法(Object Spread Syntax),是ES2018(ES9)新增的特性,专门用于对象字面量中快速拷贝、合并对象属性。

它在你的代码里的具体作用

看你这段代码:

this.someObject = {...Something.someObjectDefaultAsStaticMethod,...someThing};

这里的...是把Something.someObjectDefaultAsStaticMethod(静态方法返回的默认对象)和someThing(传入的对象)的所有可枚举属性,全部拷贝到一个新的空对象中,最终将这个合并后的新对象赋值给this.someObject。如果两个对象存在同名属性,后面的someThing里的属性会覆盖前面默认对象的属性——这也是它用来「设置默认配置 + 合并传入参数」的典型用法。

为什么之前搜索没找到准确结果?

你用的搜索词dots in parameter javascript不太精准,因为这个语法并非用在参数里(参数里的三个点是剩余参数语法,虽然外观一致但作用完全不同)。如果换用object spread syntax javascript或者javascript three dots object literal这类关键词,就能找到更匹配的官方说明啦。

补充:和Object.assign的对比

这个语法其实是Object.assign()的语法糖,你代码里的写法和下面这段代码效果几乎一致:

this.someObject = Object.assign({}, Something.someObjectDefaultAsStaticMethod, someThing);

但展开语法写起来更简洁直观,可读性也更强。

内容的提问来源于stack exchange,提问作者SomeStranger314

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:26:08