Simple experiment to understand this:
Make 2 Js files. In first file, define a variable with some value and print it. In second file, change the value of that variable and print again.
File 1:
let x = 0; // variable declared here console.log(x);
File 2:
x = 2; // no variable x declared just value change console.log(x);
Now when you include both files in your HTML page (File 1 before File 2), the output is:
0 2
Conclusion: You can access variable in one file from another file on a single page. The variables are common for a page !
Now consider defining something in ReactJs class or method component. Since React is Js library only, you would be able to access functions inside the class without an object of the class ! This will defeat the purpose of abstraction and encapsulation. So, what bind keyword does is, it tells that this function is bound to this class only and cannot be accessed outside it. That is why it is important to bind everything to your component. Otherwise two components using same function name might get confused which function to actually call if you don't bind them.
So, first time when you bind them, use the bind keyword and then use it without bind. Or, you can simply create arrow functions which will auto bind them to the component.