JavaScript Function bind()

قرض کردن تابع (Function Borrowing)

با استفاده از روش bind()، یک شیء می‌تواند یک روش از شیء دیگر را قرض کند.

در این مثال، دو شیء (person و member) ایجاد شده‌اند.

شیء member از روش fullName شیء person استفاده می‌کند:

مثال

const person = {
  firstName: "Bill",
  lastName: "Gates",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
const member = {
  firstName: "Hege",
  lastName: "Nilsen",
}
let fullName = person.fullName.member);

به طور مستقیم امتحان کنید

this

گاهی اوقات باید از روش bind() استفاده شود تا از از دست رفتن this.

در این مثال، شیء person یک روش display دارد. در روش display،this به معنای شیء person است:

مثال

const person = {
  firstName: "Bill",
  lastName: "Gates",
  display: function () {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}
person.display();

به طور مستقیم امتحان کنید

وقتی یک تابع به عنوان کالبد بازگشتی (callback) استفاده می‌شود،this از بین می‌رود.

این مثال سعی می‌کند پس از 3 ثانیه نام شخص را نمایش دهد، اما undefined:

مثال

const person = {
  firstName: "Bill",
  lastName: "Gates",
  display: function () {
    let x = document.getElementById("demo");
    x.innerHTML = this.firstName + " " + this.lastName;
  }
}
setTimeout(person.display, 3000);

به طور مستقیم امتحان کنید

روش bind() این مشکل را حل می‌کند.

در این مثال، روش bind() برای پیوند person.display به person استفاده شده است.

این مثال پس از 3 ثانیه نام شخص را نمایش می‌دهد:

مثال

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

به طور مستقیم امتحان کنید

چه چیزی این است؟

در JavaScript،this اشاره به کلمه کلیدیاشیاء.

اشاره بهچه کسیاشیاء بستگی به روش فراخوانی (استفاده یا فراخوانی) دارد.

به وسیله نحوه استفاده، کلمه کلیدی this اشاره به اشیاء مختلف:

  • در روش‌های اشیاء،this اشاره بهاشیاء.
  • وقتی به تنهایی استفاده می‌شود،this اشاره بهاشیاء جهانی.
  • در تابع،this اشاره بهاشیاء جهانی.
  • در تابع، در حالت سخت‌گیرانه،this است undefined.
  • در رویداد،this اشاره به عناصر دریافت‌کننده رویدادعناصر.
  • روش‌هایی مانند call()، apply() و bind() می‌توانند this اشاره بههر اشیاء.

توجه:this نمی‌تواند یک متغیر باشد. این یک کلمه کلیدی است. نمی‌توانید آن را تغییر دهید this مقدار.

لطفاً به:

آموزش:JavaScript this