arguments یک آبجکت شبیه به آرایه هست که توی همه توابع وجود داره و شامل آرگومانهایی هست که به تابع پاس داده شده:
function commit() { console.log(arguments); // [Arguments] { '0': 1, '1': 2, '2': 4 } console.log(arguments[0]); // 1 } commit(1, 2, 4)
به arguments گفته میشه آبجکت شبیه آرایه. این دلیل که شبیه به یک آرایه هست که index اون از صفر شروع میشه و همچنین شامل پراپرتی length هست. اما متدهایی که یک آرایه داره مثل foreEach و map رو نداره.
Arrow Function ها چنین متغیری ندارن:
commit = () => { console.log(arugments); } commit(1, 2, 4); // ReferenceError: arugments is not defined
پس بجای اون میتونیم از پارامتر rest یا سه نقطه استفاده کنیم:
commit = (...args) => { console.log(args); } commit(1, 2, 4); // [ 1, 2, 4 ]
پارامتر rest یک آرایه واقعی هست و همهی متدها و پراپرتیهایی که یک آرایه معمولی داره رو شامل میشه.
منبع: