ใน JavaScript สามารถส่ง พารามิเตอร์ (parameters) หลายค่าเข้าไปในฟังก์ชันได้ โดยคั่นด้วยคอมม่า ฟังก์ชันจะรับค่าเหล่านี้ผ่านตัวแปรพารามิเตอร์ที่ประกาศไว้
ตัวอย่าง
<html>
<head>
<script>
function sayHello(name, age) {
document.write(name + " is " + age + " years old.");
}
</script>
</head>
<body>
<p>คลิกปุ่มด้านล่างเพื่อเรียกใช้ฟังก์ชัน</p>
<form>
<input type="button" onclick="sayHello('John', 27)" value="Details">
</form>
</body>
</html>
รายละเอียดเพิ่มเติม
Parameters vs Arguments
- Parameters: ตัวแปรในหัวฟังก์ชัน (
name, age) - Arguments: ค่าจริงที่ส่งเข้ามา (
'John', 27)
คุณสมบัติพิเศษ
- Optional Parameters: ไม่บังคับส่งครบ (ค่าจะเป็น
undefined) - Default Parameters (ES6):
function foo(a, b = 10) - Rest Parameters (ES6):
function foo(...args)รับจำนวนไม่จำกัดเป็นอาร์เรย์ - Destructuring Parameters:
function foo({name, age})
arguments object (Legacy)
function sum() {
var total = 0;
for (var i = 0; i < arguments.length; i++) {
total += arguments[i];
}
return total;
}
sum(1, 2, 3); // 6
หมายเหตุ: Arrow functions ไม่มี arguments object ให้ใช้ Rest Parameters แทน
Pass by Value vs Reference
- Primitive types (string, number, boolean, ...) → Pass by Value
- Objects/Arrays → Pass by Reference (sharing) การเปลี่ยนแปลง property จะส่งผลต่อต้นฉบับ