const switchFn = (lookupObject, defaultCase = '_default') => expression => (lookupObject[expression] || lookupObject[defaultCase])(); const knownFruit = () => console.log('Known fruit'); const unknownFruit = () => console.log('Unknown fruit'); const logFruit = { 'apples': knownFruit, 'oranges': knownFruit, 'default': unknownFruit }; const fruitSwitch = switchFn(logFruit, 'default'); fruitSwitch('apples'); // Logs: 'Known fruit' fruitSwitch('pineapples'); // Logs: 'Unknown fruit'