من میدانم که هیچ نمیدانم.
بررسی متد apply در جاوااسکریپت
همونطور که میدونیم آبجکتها میتونن متد داشته باشن. مثل متد name توی آبجکت زیر:
const person = {
firstname: 'John',
lastname: 'Doe',
name() {
alert(`${this.firstname} ${this.lastname}`);
}
}
person.name(); // John Doe
خب در حالت عادی متد name
متعلق به آبجکت person
هست و this
به این آبجکت اشاره میکنه. با استفاده از متد apply
میتونیم یه کاری کنیم که this
توی متد name
به یک آبجکت دلخواه دیگه اشاره کنه. یعنی متد name
رو بتونیم جاهای دیگه استفاده کنیم:
const person = {
firstname: 'John',
lastname: 'Doe',
name() {
alert(`${this.firstname} ${this.lastname}`);
}
}
const person1 = {
firstname: 'Jeff',
lastname: 'Olson'
}
const person2 = {
firstname: 'Maria',
lastname: 'Debug'
}
person.name.apply(person1); //Jeff Olson
person.name.apply(person2); //Maria Debug
اگه متد name
نیاز به آرگومان داشته باشه، میتونیم آرگومانها رو بصورت آرایه پاس بدیم. ابتدا متد name
رو بازنویسی کنیم که دو تا آرگومان بگیره:
const person = {
name(age, country) {
alert(`${this.firstname} ${this.lastname}, ${age}, ${country}`);
}
}
و حالا بصورت زیر میتونیم ازش استفاده کنیم:
const person1 = {
firstname: 'John',
lastname: 'Doe'
}
person.name.apply(person1, [3, 'Japan']);
آرگومان دوم متد apply
یک آرایه هست. هر کدوم از آیتمهای این آرایه به عنوان آرگومانهای متد name
در نظر گرفته میشه.
منبع:
همچنین بخوانید:
اسکوپ (scope) در جاوااسکریپت چیست؟
هویستینگ (Hoisting) در جاوااسکریپت چیست؟
بررسی (let - var - const) در جاوااسکریپت
تفاوت دو مساوی (==) و سه مساوی (===) در جاوااسکریپت
بررسی متدهای تعامل با کاربر در جاوااسکریپت : alert , prompt, confirm
استفاده از عبارت 'use strict' در جاوااسکریپت
کار با توابع یا Functions در جاوااسکریپت
مقایسه توابع Declarations و Expressions در جاوااسکریپت
بررسی Callback Function در جاوااسکریپت
تفاوت عملگرهای Spread و Rest در جاوااسکریپت
پارامتر پیشفرض(Default Parameter) در جاوااسکریپت
بررسی arguments در توابع جاوااسکریپت
بررسی پروتوتایپ (Prototype) در جاوااسکریپت
بررسی Arrow Functions در جاوااسکریپت
بررسی Functions Calling Other Functions در جاوااسکریپت
بررسی آرایه (Array) در جاوااسکریپت
بررسی اشیاء یا آبجکت (objects) در جاوااسکریپت
بررسی حلقهها (Loops) در جاوااسکریپت
بررسی انتخابگرها (Selectors) در جاوااسکریپت
بررسی innerHTML در جاوااسکریپت
بررسی DOM در جاوااسکریپت، آموزش متد querySelector
بررسی نحوه عملکرد جاوا اسکریپت در پشت صحنه
بررسی مفهوم Execution Context در جاوااسکریپت - پشت پرده جاوااسکریپت (بخش اول)
بررسی مفهوم Execution Context در جاوااسکریپت - پشت پرده جاوااسکریپت (بخش دوم)
تعریف API (Application Programming Interface) به زبان ساده!
دِستراکچرینگ (Destructuring) در جاوااسکریپت یعنی چه؟
بررسی عملگر (...) Spread در جاوااسکریپت
بررسی پارامترهای Rest در جاوااسکریپت
اتصال کوتاه (Short Circuiting) با عملگر منطقی Nullish coalescing (??) در جاوااسکریپت
حلقه for ... of در جاوااسکریپت
بررسی Enhanced Object literals در جاوااسکریپ
بررسی Optional Chaining (_.) در جاوااسکریپت
بررسی کاربرد Map و Set در جاوااسکریپت (مقدماتی)
بررسی کاربرد Map و Set در جاوااسکریپت (پیشرفته)
مطلبی دیگر از این انتشارات
به سوی بینهایت و فراتر از آن
مطلبی دیگر از این انتشارات
پاور لجر (Power Ledger) چیست؟ کاربرد بلاکچین در صنعت انرژی
مطلبی دیگر از این انتشارات
اوراکل (Oracle) چیست؟ و کاربرد آن در بلاک چین و قراردادهای هوشمند