¿Hay alguna forma de agregar o manipular expresiones en una función devuelta?
Este es un ejemplo para un solo argumento:
function trackByProp(prop) { return function (value) { return value[prop]; }; }El objetivo es extender esta función para permitir que se agreguen múltiples accesorios, por ejemplo
function trackByProp(...props) { props.forEach((prop) => { //Somehow add value[prop] to the return function??? }); return function (value) { return; // value[arg1] + value[arg2] + value[argN] }; }Alternativamente, ¿hay una forma más sencilla de crear esta función?
function trackByProps(...props) { return function (value) { return props.reduce((result, prop) => result + value[prop], "") } }El uso de las propiedades en la función interna garantiza que estén disponibles en un cierre. similar al ejemplo de argumento único. Luego, se pueden iterar cada vez que se llama a la función interna.