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

时间:2018-01-26 15:16:45

标签: javascript

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

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

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

4 个答案:

答案 0 :(得分:5)

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

它被称为"对象休息/传播属性"并且是Spread Syntax

的一部分

答案 1 :(得分:0)

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

MDN在扩展运算符方面有很好的文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

答案 2 :(得分:0)

我不在乎什么......JS中的点是我需要知道的热点来修复我的错误(语法错误:意外令牌)你们不明白现在需要使用哪个版本的nodejs在 nodejs 12,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 Error "...rest" Syntax error: Unexpected token

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

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

答案 3 :(得分:-2)

您需要使用babeltransform object rest spread plugin来编译下一代JS。

var people = { name: 'Adam', name: 'John', name: 'Bruce'};
var morePeople = { ...people, name: 'Michael' };
console.log(morePeople); // logs  { name: 'Adam', name: 'John', name: 'Bruce', name: 'Michael' }