JSFiddle - React, Tailwind, and code Playground
JavaScript
let called = 0
function foo()
{
console.log( {
called: called++,
"this.name": this.constructor.name,
"this": this,
"arguments": arguments
})
}
foo() // called = 0
foo("a", 1, true) // called =1
foo("b", 2, false) // called =2
;(foo.bind( "a", 1, true ))() // called =3
;(foo.bind( "b", 2, false ))() // called =4
foo.apply( "a", [1, true] ) // called =5
foo.apply( "b", [2, false] ) // called =6
;(foo.bind.apply( foo, ["a", 1, true] ))() // 7
;(foo.bind.apply( foo, ["b", 2, false] ))() // 8