While looking at various JavaScript libraries, I have noticed a relatively common practice of passing either the window or the document object as part of the arguments given to the library initialization function.Examples:DOM4ContentLoadedEasyXDMfingerprintjsWhile I understand very well why that would be done for libraries that are designed to run on non-browser environments, I do not know why that is done for libraries that seem designed only for client browser environments. (Such as all the examples given above).
Why do browser Javascript libraries pass the window object as an argument?
javascript
It also helps to speed up the library as window or document is now locally bound. And this also ensures that if latter the user, replaces the window object with say: window = Help, I'm trapped in a window overwriting assignment statement.;; the library continues to work.