JSFiddle - React, Tailwind, and code Playground

by Per Ă…strand

JavaScript

var obj = {
  foo: function() {
    console.log('foo');
  },
  bah: function() {
    console.log('bah');
  }
};

function fn1() {
  foo();
  console.log('fn1');
}

function fn2() {
  bah();
  console.log('fn2');
}

function main() {
  function myFunc(fn) {
  	function foo() {
    	obj.foo();
    }
    function bah() {
    	obj.bah();
    }
    eval("this.exec = " + fn.toString());
  }
  
  var myNewFunc1 = new myFunc(fn1);
  myNewFunc1.exec(); //foo, fn1
  var myNewFunc2 = new myFunc(fn2);
  myNewFunc2.exec(); //bah, fn2
}

main();