Wyszukaj / o blogu

JavaScript "this"

Opublikowano ndz 26 kwietnia 2020 w javascript • 1 min read

Funkcja podczas wywołania odwołuje się do jej bieżącego kontekstu (sposobu jej wywołania, a nie miejsca jej deklaracji lub sposobu jej zdefiniowania) przy pomocy słowa kluczowegothis.

-> nie wskazuje na funkcję wewnątrz, której jest użyte ani na zakres (scope) funkcji

-> wskazanie kontekstu poprzez call, apply (lub bind)

-> wywołanie funkcji z wykorzystaniem słowa kluczowego new sprawia, że kontekstem jest nowo stworzony obiekt

    function bike() {
    console.log(this.name);
    }

    var name = "Ninja";
    var obj1 = { name: "Pulsar", bike: bike };

    bike();           // "Ninja"
    obj1.bike();      // "Pulsar" = this.name -> obj1.name

Strict mode - domniemane this

W tym trybie this jest undefined

Jeśli właściwość obiektu jest wywoływana jako metoda, wtedy obiekt staję się obiektem this albo kontekstem wywołania tej metody

Stały trb/Fixed mode

Użycie call, apply lub bind - sprawiają, że pierwszy parametr funkcji będzie jej kontekstem

Słowo kluczowe new

Słowo kluczowe new jest wywołaniem tworzącym/konstruującym. Wywołanie funkcji z wykorzystaniem słowa kluczowego new sprawia, że kontekstem jest nowo stworzony obiekt

  • w metodzie this odwołuje się do obiektu właściciela

  • samo this odwołuje się do globalnego obiekt

  • w funkcji this odwołuje się do globalnego obiekt/ w strict mode jest undefined

  • w wydarzeniu odwołuje się do elementu, który je przyjmuje

  • call, apply przypisuje this do wybranego obiektu


Źródła:

https://www.youtube.com/watch?v=QTDXSUnS1dc

https://codeburst.io/all-about-this-and-new-keywords-in-javascript-38039f71780c

https://typeofweb.com/this-js-kontekst-wywolania-funkcji/

https://www.w3schools.com/js/js_this.asp