带花括号的Es6类

时间:2018-06-22 19:49:56

标签: javascript class

我已经在使用es6的代码库中看到了这一点,但并没有完全理解为什么会有大括号。我还没有在网上看到任何有关此事的例子。有什么想法,例子吗?

let aNewElement = new OldElement({theObject: 1})

2 个答案:

答案 0 :(得分:4)

因为它使用一个对象(关联数组)作为类实例中的参数。

与:

let param = { theObject: 1 };
let aNewElement = new OldElement(param);

答案 1 :(得分:2)

您可以像常规函数一样将参数传递给es6类的构造函数。它们可以是一个简单的值,例如数字,字符串,但也可以是一个对象,甚至是另一个函数。在所示示例中,您正在使用对象文字符号{theObject: 1}传递对象。因此,在该类中,您可以使用该对象并进行类似将其分配给属性的操作。例如:

class OldElement{
    constructor(someArg) {
        // this expects the argument to be an object with a 'theObject' property
        // so you can use it any way you want.
        console.log(someArg.theObject) // log it
        this.obj = someArg.theObject   // or save it to a property
    }
}

// pass in an object to the constructor
let aNewElement = new OldElement({theObject: "hello"})

// see the property we saved:
console.log(aNewElement.obj)