Возможно ли создать класс ES6, который присваивает значение по умолчанию для свойства, если оно не передано новым методом?ES6 Классы Значение по умолчанию
class myClass {
constructor(options) {
this.a = typeof options.a !== 'undefined' ? options.a : 'default a value';
this.b = typeof options.b !== 'undefined' ? options.b : 'default b value';
this.c = typeof options.c !== 'undefined' ? options.c : 'default c value';
}
}
var myClassWithValue = new myClass({a:'a value', b: 'b value'});
Если я пытаюсь сделать это с помощью этого кода, компиляции с babeljs, я получаю TypeError: Невозможно установить свойство «С» не определено.
Возможно, я не понимаю, как работают классы в javascript.
Если он не может прочитать свойство '' c' из undefined', это означает, что все, что должно иметь свойство 'c' ** есть **' undefined'. Это означает, что в вашем случае 'options' не определено. –
Но это то, чего я хочу. Если я не передаю значение c в параметрах, он создает новый объект со значением по умолчанию для c –
. Ваш код в порядке, вы можете скопировать/вставить его [здесь] (https://babeljs.io/repl/) и посмотреть. – Engineer