It is quite easy to pollute global scope by defining variables or functions that impact core functions.
|
|
parseInt
has transformed into a printer, thanks to the above code.
The practice of “overriding” global scope is not useful and should be avoided like the plague (If you are born in the wrong century - “plague is to be avoided at all costs”). Using such declarations -
- cause confusion
- introduce inconsistencies
- cause confusion
Yes, “cause confusion” is repeated for clarity.
The next time you see a function behaving badly, check for such declarations first. For some reason, some developers end up thinking that it is a good idea to tackle the psychopath of a maintenance engineer.
But, if you inherit such a function and cannot quite change it at this time - you may want to “pass” the global reference to such functions/modules/classes. Refer to those global scopes all the time for any future changes.