เมธอด apply() ใน JavaScript ทำงานคล้ายกับ call() แตกต่างกันตรงที่ apply() รับอาร์กิวเมนต์เป็น อาร์เรย์ (array) หรือ array-like object ส่วน call() รับอาร์กิวเมนต์ทีละตัว
ไวยากรณ์
func.apply(thisArg, [argsArray])
ตัวอย่าง
ใช้ Math.max.apply() เพื่อหาค่าสูงสุดในอาร์เรย์:
<html>
<head>
<script>
document.write("ค่าสูงสุดในอาร์เรย์: ");
document.write(Math.max.apply(null, [50, 90, 18, 87]));
</script>
</head>
<body>
</body>
</html>
ผลลัพธ์
ค่าสูงสุดในอาร์เรย์: 90
กรณีใช้งานทั่วไป
- เรียกฟังก์ชันพร้อมส่งอาร์เรย์เป็นพารามิเตอร์
- ใช้กับ
Math.max,Math.minเพื่อหาค่าสูงสุด/ต่ำสุดในอาร์เรย์ - การ借ยืมเมธอด (method borrowing) จากออบเจ็กต์อื่น
หมายเหตุ: ใน ES6 สามารถใช้ Spread Syntax (...) แทนได้ ซึ่งอ่านง่ายกว่า เช่น Math.max(...[50, 90, 18, 87])