JavaScript Function bind()
- صفحه قبلی Apply JS Function
- صفحه بعدی بستن JS
قرض کردن تابع (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
- صفحه قبلی Apply JS Function
- صفحه بعدی بستن JS