Why “this” inside of a function's returning ob

2019-02-25 11:25发布

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

3条回答
我命由我不由天
2楼-- · 2019-02-25 11:59

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();
查看更多
再贱就再见
3楼-- · 2019-02-25 12:07

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

查看更多
Anthone
4楼-- · 2019-02-25 12:14

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()
查看更多
登录 后发表回答