Nombrar el objeto raíz en los parámetros de la función de desestructuración de ES6
ES6 ofrece desestructuración como una forma concisa de extraer propiedades de objetos y matrices en variables. Sin embargo, puede resultar complicado conservar el nombre del objeto raíz al desestructurar los argumentos de la función.
Metáfora de herencia de ES5
En ES5, puede pasar el objeto de opciones completo "subir" la cadena de herencia a una clase principal, permitiéndole acceder a todos los 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 };
Desestructuración de ES6
Con la desestructuración de ES6, extraer parámetros específicos se vuelve más 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? };
Opciones: Extracción individual o paso de objeto raíz
Una opción es extraer cada opción individualmente en setupChildClass6() y luego pasarlas a setupParentClass6(). Sin embargo, este enfoque puede volverse detallado con muchos parámetros:
// ugh. var setupChildClass6b = ({minVal, maxVal, rows, columns}) => { rangeSlider.setup(minVal, maxVal); setupParentClass6({rows, columns}); };
Usar una variable temporal
Una solución más concisa es usar una variable temporal para contener el objeto de opciones raíz antes de pasarlo a setupParentClass6():
const setupChildClass6 = options => { const {minVal, maxVal} = options; rangeSlider.setup(minVal, maxVal); setupParentClass6(options); };
Este método le permite desestructurar los parámetros específicos necesarios en setupChildClass6(), mientras sigue pasando todo el objeto de opciones a setupParentClass6().
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3