.bind()
is a powerful method for changing or preserving the context and therefore the scope available to an expression.
It can be used to preserve contexts for callbacks that will be invoked and executed in different block scopes, for instance in this closure
const fn = function(fn, ...args) {
return fn.call(this, ...args)
}.bind(this)
let func = callback(fn);