将具有预定义道具的对象传递给类构造函数es6

Fua*_*mov 0 javascript ecmascript-6 babeljs

我试图将具有预定义属性的对象传递给我的类构造函数.

像这样

class Test {

constructor({
    a = "test a",
    b = "test b"
    }) {

    }
}
Run Code Online (Sandbox Code Playgroud)

PS我知道如何定义对象的属性.我想知道如何预定义属性.

And*_*gle 5

您似乎想要将一个对象传递给构造函数,并将其属性分配给该类的单个键.你可以这样使用解构:

class MyClass {
  constructor({a,b} = {a:1,b:2}) {
    this.a = a;
    this.b = b;
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,对于部分填充的对象,这是不安全的:

var instance = new MyClass({a:3});
// instance.b == undefined
Run Code Online (Sandbox Code Playgroud)

处理这个可以这样做:

class MyClass {
  constructor({a=1,b=2} = {}) {
    this.a = a;
    this.b = b;
  }
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

var instance = new MyClass({a:3});
// instance.a == 3
// instance.b == 2
Run Code Online (Sandbox Code Playgroud)