«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как передать корневой объект при использовании параметров функции деструктуризации ES6?

Как передать корневой объект при использовании параметров функции деструктуризации ES6?

Опубликовано 11 декабря 2024 г.
Просматривать:104

How to Pass the Root Object When Using ES6 Destructuring Function Parameters?

Именование корневого объекта в параметрах функции деструктуризации 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