با استفاده از متد call می‌تونیم از یک تابع دیگه، جوری استفاده کنیم که مقدار this توی این تابع به آبجکت دلخواه ما اشاره کنه:

function add(first, second, third) {
  this.result = first + second + third;
}

const item1 = { result: 0 }
const item2 = { result: 0 }
const item3 = { result: 0 }

add.call(item1, 3, 2, 1);
add.call(item2, 9, 3, 2);
add.call(item3, 6, 1, 3);

alert(item1.result); // 6
alert(item2.result); // 14
alert(item3.result); // 10

اگه تابع ما نیاز به آرگومان داشته باشه، اون رو بصورت جدا جدا پاس می‌دیم.

همونطور که دیدیم call و apply شبیه به هم هستن. اما یک تفاوت جزئی دارن که توی سوال بعدی با اون آشنا میشیم.

 

منبع: