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
thisodwołuje się do globalnego obiekt -
w funkcji
thisodwołuje się do globalnego obiekt/ w strict mode jestundefined -
w wydarzeniu odwołuje się do elementu, który je przyjmuje
-
call,applyprzypisujethisdo 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