JSFiddle - React, Tailwind, and code Playground

by boisvert

JavaScript

function loggerise(f) {
   return function() {
      const r = f(arguments)
      console.log(r)
      return r
   }
}

const oracle = {
  question:'',
  ask: function(q) {this.question=q},
  answer: function() {return 'Answer to '+this.question+' is 42'},
  answerLog: loggerise(function() {return 'Answer to '+this.question+' is 42'})
}

oracle.ask('the universe');
alert(oracle.answer()); // correct result, no logging
alert(loggerise(()=>(42))()) // correct result and logging, not in obect
alert(oracle.answerLog()); // wrong result and logging, in obect