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 jestundefined
-
w wydarzeniu odwołuje się do elementu, który je przyjmuje
-
call
,apply
przypisujethis
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