Babel

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser.js"></script>
<script type="text/babel">

    function getLogger(log, prefix='info') {
      return str => log(`${prefix} - ${new Date()}: ${str}`);
    }


    const infoLogger = getLogger(msg => console.log(msg));
    infoLogger('Starting up!'); 
    const errorLogger = getLogger(msg => { throw msg }, 'error');
    errorLogger('Oh no!'); // throws an error with 'error' prefix!
  
</script>