JavaScript Function bind()

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);

Spróbuj sam

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();

Spróbuj sam

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);

Spróbuj sam

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);

Spróbuj sam

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 jest undefined.
  • 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