It's just a way of passing the value of lexical this
into the IIFE - nothing more so that this
inside the IIFE will have the same lexical value it had in the surrounding code. Depending upon where the IIFE is, this
may not be the window object. It may have an actual lexical and local value.
If you don't use .call(this)
on the IIFE, then the this
value will be reset in the function to either the global object (which is the window
object in a browser) or in strict mode, this
will become undefined
in the IIFE. Javascript resets the value of this
according to how a function was called. You can see all the six different ways that this
is controlled in this answer:
When you pass 'this' as an argument.
To tell you more about your situation, we'd have to see the actual code in context.
In the particular code you added a link to, I don't see any particular reason for doing it as I don't see any references to this
at the top level of the IIFE. It appears to just be a coding habit that is generally used and is useful in some circumstances, but not needed or useful in others.