"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como passar o objeto raiz ao usar parâmetros da função de desestruturação ES6?

Como passar o objeto raiz ao usar parâmetros da função de desestruturação ES6?

Publicado em 11/12/2024
Navegar:424

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

Nomeando o objeto raiz no ES6 Desestruturando parâmetros de função

ES6 oferece desestruturação como uma maneira concisa de extrair propriedades de objetos e matrizes em variáveis. No entanto, pode ser um desafio manter o nome do objeto raiz ao desestruturar argumentos de função.

Metáfora de herança ES5

No ES5, você pode passar o objeto de opções inteiro "up" a cadeia de herança para uma classe pai, permitindo que ela acesse todos os parâmetros:

// 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
};

Desestruturação ES6

Com a desestruturação ES6, extrair parâmetros específicos se torna mais conveniente:

// 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?
};

Opções: extração individual ou passagem de objeto raiz

Uma opção é extrair cada opção individualmente em setupChildClass6() e depois passá-las para setupParentClass6(). No entanto, essa abordagem pode se tornar detalhada com muitos parâmetros:

// ugh.
var setupChildClass6b = ({minVal, maxVal, rows, columns}) => {
    rangeSlider.setup(minVal, maxVal);
    setupParentClass6({rows, columns});
};

Usando uma variável temporária

Uma solução mais concisa é usar uma variável temporária para armazenar o objeto de opções raiz antes de passá-lo para setupParentClass6():

const setupChildClass6 = options => {
    const {minVal, maxVal} = options;
    rangeSlider.setup(minVal, maxVal);
    setupParentClass6(options);
};

Este método permite desestruturar os parâmetros específicos necessários em setupChildClass6(), enquanto ainda passa todo o objeto de opções para setupParentClass6().

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3