function decorator(f) {
return function() {
f.apply(this, arguments);
console.log(f.name + ' is called!');
}
}
function foo() {
console.log('I am foo!');
}
const bar = decorator(foo);
bar(); // I am foo! \n foo is called!
function foo() {
foo.isRunning = true;
// do something
}
function bar() {
if (!foo.isRunning) {
return foo();
}
// do something other
}