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().
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