من میدانم که هیچ نمیدانم.
بررسی متد 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 در جاوااسکریپت (پیشرفته)
مطلبی دیگر از این انتشارات
استیبل کوین StableCoin چیست؟
مطلبی دیگر از این انتشارات
کیف پول ترزور مدل T - سرمایه گذاری آداس - همه چیز درباره Trezor model T
مطلبی دیگر از این انتشارات
اهرم در ارز دیجیتال چیست؟