"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
})();