نامیدن آرگومان ها
یکی دیگر از راههای ارسال آرگومانها استفاده از نام آنهاست. استفاده از نام آرگومانها شما را از به یاد آوری و رعایت ترتیب پارامترها هنگام ارسال آرگومانها راحت میکند. در عوض شما باید نام پارامترهای تابع را به خاطر بسپارید. استفاده از نام آرگومانها خوانایی برنامه را بالا میبرد، چون شما میتوانید ببینید که چه مقادیری به چه پارامترهایی اختصاص داده شده است. نامیدن آرگومانها یا named argument در ES6 مطرح شده است. در زیر نحوه استفاده از نام آرگومانها وقتی که تابع فراخوانی میشود نشان داده شده است :
function FunctionToCall( {paramName1, paramName2, ... paramNameN} ) { // Some Code }
حال به مثال زیر توجه کنید :
1: function SetSalaries( {jack, andy, mark} ) 2: { 3: console.log("Jack's salary is ", jack); 4: console.log("Andy's salary is ", andy); 5: console.log("Mark's salary is ", mark); 6: } 7: 8: SetSalaries( {jack: 120, andy: 30, mark: 75} ); 9: console.log("\n"); 10: SetSalaries( {andy: 60, mark: 150, jack: 50} ); 11: console.log("\n"); 12: SetSalaries( {mark: 35, jack: 80, andy: 150} );
Jack's salary is 120. Andy's salary is 30. Mark's salary is 75. Jack's salary is 50. Andy's salary is 60. Mark's salary is 150. Jack's salary is 80. Andy's salary is 150. Mark's salary is 35.
برای استفاده از نام پارامترها، باید آنها را در داخل آکولاد بنویسید و هنگام فراخوانی تابع هم به همین صورت عمل کنید. خروجی نشان میدهد که حتی اگر ما ترتیب آرگومانها در سه تابع فراخوانی شده را تغییر دهیم مقادیر مناسب به پارامترهای مربوطهشان اختصاص داده میشود. نمیتوان از آرگومانهای دارای نام و آرگومانهای ثابت (مقداری) به طور همزمان استفاده کرد:
SetSalaries(30, andy: 50, mark: 60); SetSalaries(30, mark: 60, andy: 50); SetSalaries(mark: 60, andy: 50, 30); SetSalaries(mark: 60, 30, andy: 50);
همه کدهای بالا، خطا ایجاد می کنند. ولی می توان از پارامترهای اختیاری به صورت زیر استفاده کرد:
function SetSalaries( {jack, andy, mark = 200} ) { // Some Code }