JavaScript Function bind()
- Poprzednia strona JS funkcja Apply
- Następna strona JS zamknięte
pożyczanie funkcji (Function Borrowing)
poprzez użycie metody bind(), obiekt może pożyczyć metodę od innego obiektu.
poniższy przykład utworzył 2 obiekty (person i member).
obiekt member pożyczył metodę fullname obiektu person:
przykład
const person = { firstName: "Bill", lastName: "Gates", fullName: function () { return this.firstName + " " + this.lastName; } } const member = { firstName: "Hege", lastName: "Nilsen", } let fullName = person.fullName.bind(member);
zachować this
czasami musimy użyć metody bind() aby zapobiec utracie this.
w tym przykładzie obiekt person ma metodę display. W metodzie display,this oznacza obiekt person:
przykład
const person = { firstName: "Bill", lastName: "Gates", display: function () { let x = document.getElementById("demo"); x.innerHTML = this.firstName + " " + this.lastName; } } person.display();
kiedy funkcja jest używana jako zwrotka,this stracą się.
ten przykład spróbuje wyświetlić nazwę osoby po upływie 3 sekund, ale wyświetli undefined:
przykład
const person = { firstName: "Bill", lastName: "Gates", display: function () { let x = document.getElementById("demo"); x.innerHTML = this.firstName + " " + this.lastName; } } setTimeout(person.display, 3000);
metoda bind() rozwiązuje ten problem.
w tym przykładzie metoda bind() jest używana do przypięcia person.display do person.
w tym przykładzie nazwę osoby wyświetli po upływie 3 sekund:
przykład
const person = { firstName: "Bill", lastName: "Gates", display: function () { let x = document.getElementById("demo"); x.innerHTML = this.firstName + " " + this.lastName; } } let display = person.display.bind(person); setTimeout(display, 3000);
co to jest this?
w JavaScript,this
kluczowe słowo odnosi się doobiekt.
odnosi się doktóryobiekt zależy od sposobu wywołania (użycia lub wywołania).
zależnie od sposobu użycia, kluczowe słowo this
odnosi się do różnych obiektów:
- w metodach obiektu:
this
odnosi się do tegoobiekt. - używane osobno:
this
odnosi się doobiekt globalny. - w funkcji:
this
odnosi się doobiekt globalny. - w funkcji, w trybie rygorystycznym:
this
jestundefined
. - w zdarzeniu:
this
odnosi się do elementu, który odbiera zdarzenieelement. - metody takie jak call(), apply() i bind() mogą
this
odnosi się dokażdy obiekt.
Uwaga:this
nie jest zmienną. Jest to kluczowe słowo. Nie możesz go zmienić this
wartość.
Zobacz również:
Kurs:JavaScript this
- Poprzednia strona JS funkcja Apply
- Następna strona JS zamknięte