我正在尝试将具有预定义属性的对象传递给我的类构造函数。
像这样class Test {
constructor({
a = "test a",
b = "test b"
}) {
}
}
P.S。我知道如何定义对象的属性。我想知道如何预定义属性。
答案 0 :(得分:5)
似乎您希望将一个对象传递给构造函数,并将其属性分配给该类的单个键。您可以这样使用解构:
class MyClass {
constructor({a,b} = {a:1,b:2}) {
this.a = a;
this.b = b;
}
}
请注意,这对部分填充的物体不安全:
var instance = new MyClass({a:3});
// instance.b == undefined
可以这样处理:
class MyClass {
constructor({a=1,b=2} = {}) {
this.a = a;
this.b = b;
}
}
结果是:
var instance = new MyClass({a:3});
// instance.a == 3
// instance.b == 2
答案 1 :(得分:0)
正如我在评论中所说,documentation顶部有一个例子。
class Test {
constructor(/* put arguments here if you want to pass any */){
//Pre-define a and b for any new instance of class Test
this.a = "test a";
this.b = "test b";
}
}
答案 2 :(得分:0)
简单的解决方案是在实例化期间传递构造函数和对象:
class Test {
constructor(obj){
this.a = obj.a;
this.b = obj.b;
}
};
const obj = {
a: 'value',
b: 'value'
};
const newtTest = new Test(obj);