JavaScript to słowo kluczowe
Przykład
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
Co to jest ?
Słowo kluczowe JavaScript this
odnosi się do obiektu, do którego należy.
Ma różne wartości w zależności od miejsca zastosowania:
- W metodzie
this
odnosi się do obiektu właściciela . - Sam
this
odnosi się do obiektu globalnego . - W funkcji
this
odnosi się do obiektu globalnego . - W funkcji w trybie ścisłym
this
jestundefined
. - W zdarzeniu
this
odnosi się do elementu , który otrzymał zdarzenie. - Metody takie jak
call()
, iapply()
mogą odnosić sięthis
do dowolnego obiektu .
to w metodzie
W metodzie obiektowej this
odnosi się do „ właściciela ” metody.
W przykładzie na górze tej strony this
odnosi się do obiektu osoby .
Obiekt person jest właścicielem metody fullName .
fullName : function() {
return this.firstName + " " + this.lastName;
}
ten sam
Kiedy jest używany samodzielnie, właścicielem jest obiekt globalny, więc this
odnosi się do obiektu globalnego.
W oknie przeglądarki obiekt Global to [object Window]
:
Przykład
let x = this;
W trybie ścisłym , gdy jest używany samodzielnie, this
odnosi się również do obiektu Global
[object Window]
:
Przykład
"use strict";
let x = this;
to w funkcji (domyślnie)
W funkcji JavaScript właściciel funkcji jest domyślnym wiązaniem dla this
.
Tak więc w funkcji this
odnosi się do obiektu Global [object Window]
.
Przykład
function myFunction() {
return this;
}
to w funkcji (ścisłe)
Tryb ścisły JavaScript nie zezwala na domyślne wiązanie.
Tak więc, gdy jest używany w funkcji, w trybie ścisłym, this
jest undefined
.
Przykład
"use strict";
function myFunction() {
return this;
}
to w obsłudze zdarzeń
W obsłudze zdarzeń HTML this
odnosi się do elementu HTML, który otrzymał zdarzenie:
Przykład
<button onclick="this.style.display='none'">
Click to
Remove Me!
</button>
Wiązanie metody obiektu
W tych przykładach this
jest to obiekt person (obiekt person jest „właścicielem” funkcji):
Przykład
const person = {
firstName : "John",
lastName : "Doe",
id : 5566,
myFunction : function() {
return this;
}
};
Przykład
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " +
this.lastName;
}
};
Innymi słowy: this.firstName oznacza właściwość firstName tego obiektu (osoby).
Jawne powiązanie funkcji
Metody call()
i apply()
są predefiniowanymi metodami JavaScript.
Oba mogą być użyte do wywołania metody obiektowej z innym obiektem jako argumentem.
Możesz przeczytać więcej o call()
i apply()
później w tym samouczku.
W poniższym przykładzie wywołanie person1.fullName z argumentem person2 this
będzie odwoływać się do person2, nawet jeśli jest to metoda person1:
Przykład
const person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2); // Will return "John Doe"