there is two type of scope in javascript named function scope global scope
now i am executing this code
function abc()
{
alert(this)
Your function is under global(window) object. I mean,
function abc()
{
alert(this);
}
abc();
// or You can either call by
window.abc()
You can write your function under custom object
// Function under custom object
var customObj = {
abc : function () {
alert(this);
}
};
customObj.abc()
The this
keyword refers to the object the function belongs to, or the window object if the function belongs to no object.
Reference
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
this
, inside any function, will be the object on which the function is invoked. In your case, you are not invoking it on any object. So, by default this
refer to global
object, in your browser, it is the window
object.
But in strict
mode, if you invoke it like this, this
will be undefined
.
"use strict";
function abc() {
console.log(this); // undefined
}
abc();
Or
function abc() {
"use strict";
console.log(this); // undefined
}
abc();