14
0
0
تفاوت بین استفاده از Function.prototype.apply() و Function.prototype.call() برای فراخوانی یه تابع چیه؟
const func = function() {
alert("Hello world!");
};
تفاوتهای func.apply() و func.call()
آیا تفاوتی از نظر عملکرد بین این دو روش وجود داره؟ کی بهتره از call استفاده کنیم و کی از apply؟
0
0
پاسخ کاربردی
تفاوت اینه که apply بهت اجازه میده تابع رو با آرگومانها به صورت آرایه فراخوانی کنی، ولی call نیاز داره که پارامترها به صورت جداگانه وارد بشن.
میتونی داکیومنت هاشون رو روی MDN از اینجا و اینجا بخونی
سینتکس تقریبی:
theFunction.apply(valueForThis, arrayOfArgs)
theFunction.call(valueForThis, arg1, arg2, ...)
همچنین از ES6 به بعد، میتونی آرایه رو با استفاده از عملگر پخش (spread) برای استفاده با تابع call تبدیل کنی.
کد نمونه:
function theFunction(name, profession) {
console.log("My name is " + name + " and I am a " + profession +".");
}
theFunction("John", "fireman");
theFunction.apply(undefined, ["Susan", "school teacher"]);
theFunction.call(undefined, "Claude", "mathematician");
theFunction.call(undefined, ...["Matthew", "physicist"]);
ارسال پاسخ به سوال بالا