我已经在使用es6的代码库中看到了这一点,但并没有完全理解为什么会有大括号。我还没有在网上看到任何有关此事的例子。有什么想法,例子吗?
let aNewElement = new OldElement({theObject: 1})
答案 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)