"use strict" and "this" in ES5
"this" is a special variable in JavaScript. If a Constructor function is called without "new", the "this" variable inside the constructor will reference the Global object. We can use "use strict" in ES5 to prevent this happening.
(function () { "use strict"; console.log(this === window); //false })();
You can also use the "use strict" in global, but this will affect all module
"use strict"; console.log(this === window); //true (function () { console.log(this === window); //false })();