Именование корневого объекта в параметрах функции деструктуризации ES6
ES6 предлагает деструктуризацию как краткий способ извлечения свойств из объектов и массивов в переменные. Однако сохранение имени корневого объекта при деструктуризации аргументов функции может оказаться затруднительным.
Метафора наследования ES5
В ES5 можно передать весь объект параметров «поднять» цепочку наследования до родительского класса, предоставив ему доступ ко всем параметрам:
// ES5: var setupParentClass5 = function(options) { textEditor.setup(options.rows, options.columns); }; var setupChildClass5 = function(options) { rangeSlider.setup(options.minVal, options.maxVal); setupParentClass5(options); // pass the options object UP };
Деструктуризация ES6
Благодаря деструктуризации 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}); };
Использование временной переменной
Более краткое решение — использовать временную переменную для хранения объекта корневых параметров перед передачей его в setupParentClass6():
const setupChildClass6 = options => { const {minVal, maxVal} = options; rangeSlider.setup(minVal, maxVal); setupParentClass6(options); };
Этот метод позволяет вам деструктурировать определенные параметры, необходимые в setupChildClass6(), при этом передавая весь объект параметров в setupParentClass6().
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3