Why “this” inside of a function's returning object window

后端 未结 3 1519
萌比男神i
萌比男神i 2021-01-18 18:14

there is two type of scope in javascript named function scope global scope

now i am executing this code

function abc()
{
alert(this)         


        
相关标签:
3条回答
  • 2021-01-18 18:31

    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()
    
    0 讨论(0)
  • 2021-01-18 18:32

    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

    0 讨论(0)
  • 2021-01-18 18:34

    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();
    
    0 讨论(0)
提交回复
热议问题