JavaScript closure and the this object

后端 未结 2 1610
日久生厌
日久生厌 2021-01-18 18:29

I thought I had a reasonable understanding of the this object in JavaScript. When dealing with objects, callbacks, and both events and handlers, I haven\'t had

2条回答
  •  爱一瞬间的悲伤
    2021-01-18 19:17

    The value of this depends only on whether you call the function as a method or as a function.

    If you call it as a method, this will be the object that the method belongs to:

    obj.myFunction();
    

    If you call it as a function, this will be the window object:

    myFunction();
    

    Note that even if you are in a method that belongs to an object, you still have to call other methods in the object using the method syntax, otherwise they will be called as functions:

    this.myOtherFunction();
    

    If you put a method reference in a variable, you will detach it from the object, and it will be called as a function:

    var f = obj.myFunction;
    f();
    

    The call and apply methods are used to call a function as a method even if it's not a method in the object (or if it's a method in a different object):

    myFunction.call(obj);
    

提交回复
热议问题