带有三个点的 Javascript 属性 (...)

IT技术 javascript
2021-02-11 21:59:08

我应该使用的代码有问题。我发现了一个我不熟悉的语法,并且在谷歌搜索文档时遇到了麻烦:

export const Something = class Something {
    constructor(someObject = {}) {
        this.someObject = {...Something.someObjectDefaultAsStaticMethod,...someThing};
    };
// The rest of the class
};

我在理解参数前面的三个点 (...) 的作用时遇到问题。而“参数javascript中的点”是一个糟糕的搜索词。有人可以帮助我,也许可以告诉我这种语法实际上被称为什么,或者只是将我直接链接到文档?

4个回答

这不是 ES6,而是仅在 ECMAScript 2018 中添加。

它被称为“对象休息/传播属性”,是传播语法的一部分

这个答案是正确的。但只是为了澄清 - 数组 rest / spread 运算符在 ES6 中,对象在第 3 阶段。
2021-04-12 21:59:08

[...something]是传播运营商。它本质上允许扩展数组或字符串。您会看到它经常在 React 中使用,但还有许多其他用例。

MDN 有关于扩展运算符的大量文档:https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

正确但请注意,它不是运算符它不是表达式语法的一部分。
2021-04-05 21:59:08

...(Javascript 中的三个点)称为扩展语法扩展运算符这允许扩展诸如数组表达式或字符串之类的可迭代对象,或者扩展放置在任何位置的对象表达式。

我想列出传播语法(Spread Operator)的最常用的实际用例以下内容已通过此 stackoverflow answer 中的示例进行了解释

  1. 组合数组(连接数组)
  2. 复制数组
  3. 不使用 Apply 调用函数
  4. 解构数组
  5. 函数参数作为其余参数
  6. 使用数学函数
  7. 组合两个对象
  8. 将一个字符串分成不同的字符
有关写出的每个用例的清晰示例,请参阅此stackoverflow 答案
2021-03-19 21:59:08
@Keet 如果您为 8 个用例中的每一个都写出清晰的代码示例,那就太好了。
2021-03-25 21:59:08
@stomy 我在答案附带的链接中提供了清晰的代码示例。stackoverflow.com/a/61683996/4388776
2021-04-05 21:59:08

我不在乎什么 ... JS 中的点是我需要知道的热点来修复我的错误(语法错误:意外标记)你们不明白现在在 nodejs 12 上需要使用哪个版本的 nodejs ,14 失败,错误!nodejs 社区的每个人现在都在用新功能进行心理自慰,但没有人说如何修复此错误或重写代码

编译失败。

36 | 安装(){

37 | const options = { ...this.computedOptions, el: this.$refs.toastuiEditor };

找到了一些解决方案 https://dev.to/brianmcoates/alternative-to-the-spread-operator-10be

JQuery过去的解决方案

 this.settings = $.extend({
    showCancel: true,
    showConfirm: true,
    Message: "",
    extraClass: ""
  }, options || {} );

它的一些 babel 错误

您缺少对象休息传播变换:https : //babeljs.io/docs/plugins/transform-object-rest-spread/

React JS 错误“...rest”语法错误:意外的令牌

https://github.com/JeffreyWay/laravel-mix/issues/76

https://github.com/JeffreyWay/laravel-mix/issues/76#issuecomment-271920174 __