Есть ли способ сохранить имя аргумента деструктивной функции? I.e., имя корневого объекта?
В ES5 я могу сделать это (используя наследование как метафору, чтобы сделать точку):
// ES5:
var setupParentClass5 = function(options) {
textEditor.setup(options.rows, options.columns);
};
var setupChildClass5 = function(options) {
rangeSlider.setup(options.minVal, options.maxVal);
setupParentClass5(options); // <= we pass the options object UP
};
Я использую тот же объект options
для хранения нескольких параметров конфигурации. Некоторые параметры используются родительским классом, а некоторые используются подклассом.
Есть ли способ сделать это с помощью аргументов destructured function в ES6?
// ES6:
var setupParentClass6 = ({rows, columns}) => {
textEditor.setup(rows, columns);
};
var setupChildClass6 = ({minVal, maxVal}) => {
rangeSlider.setup(minVal, maxVal);
setupParentClass6( /* ??? */ ); // how to pass the root options object?
};
Или мне нужно извлечь все параметры в setupChildClass6()
, чтобы их можно было индивидуально передать в setupParentClass6()
?
// ugh.
var setupChildClass6b = ({minVal, maxVal, rows, columns}) => {
rangeSlider.setup(minVal, maxVal);
setupParentClass6({rows, columns});
};