there is two type of scope in javascript named
function scope
global scope
now i am executing this code
function abc()
{
alert(this);
}
abc();
abc call returning me [object Window]
Why?? function makes another scope so why it is representing window
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();
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