Конструктор принимает объект параметров с несколькими свойствами.Как я могу назначить их вновь созданному объекту без указания каждого?
Вот моя неудачная попытка
function Client(options) {
const defaultOptions = {
host: '127.0.0.1',
port: 1905,
loggerFn: console.log,
maxTime: 60000,
startFromTransactionId: 1
};
this = { ...defaultOptions, ...userOptions, ...this }
}
ReferenceError: Недопустимая левая сторона в назначении
Я думаю, что это работает, но я надеюсь, что есть более простое решение с использованием операторов распространения
function Client(options) {
const defaultOptions = {
host: '127.0.0.1',
port: 1905,
loggerFn: console.log,
maxTime: 60000,
startFromTransactionId: 1
};
for (prop in defaultOptions) {
if (defaultOptions.hasOwnProperty(prop)) {
this[prop] = options[prop] ? options[prop] : defaultOptions[prop];
}
}
}