Я пытаюсь очистить определение класса ES6, теперь у меня есть такой код:
class SomeClass {
constructor({a, b, c, d, e}) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.e = e;
// some codes here
}
// some methods here..
}
Этот код расширяет все, что передается конструктору.
Я использую его в этомпуть:
var obj = new SomeClass({a:1, b:2, c:3, d:4, e:5});
Когда я хочу изменить параметр, передаваемый конструктору, например:
var obj = new SomeClass({a:1, b:2, c:3, d:4, e:5, f:6});
Я хочу, чтобы obj.f
было 6
.
Я хочу, чтобы конструктор можно было использовать повторно, если я передаю ему другие параметры.Если параметры, передаваемые конструктору, изменяются, возвращаемое значение изменяется.
Я пробовал это:
class SomeClass extends Object {
constructor(params) {
super(params);
// some codes here
}
// some methods here..
}
, но это не работает.
Так почему это не работаетРабота?Если я расширяю класс Object
, почему super({a:1})
не возвращает {a:1}
?
$ node
> new Object({a:1})
{ a: 1 }
> class MyClass extends Object {
... constructor(params) { super(params); }
... }
undefined
> new MyClass({a:1})
MyClass {}
А как достичь своей цели?