พารามิเตอร์ฟังก์ชัน JavaScript
JavaScript function
ไม่ตรวจสอบค่าพารามิเตอร์ (อาร์กิวเมนต์)
พารามิเตอร์ฟังก์ชันและอาร์กิวเมนต์
ก่อนหน้านี้ในบทช่วยสอนนี้ คุณได้เรียนรู้ว่าฟังก์ชันสามารถมี พารามิเตอร์ ได้ :
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
พารามิเตอร์ ของ ฟังก์ชันคือชื่อ ที่ แสดงในนิยามฟังก์ชัน
อาร์กิวเมนต์ ของ ฟังก์ชัน คือ ค่าจริง ที่ ส่งผ่านไปยัง (และรับโดย) ฟังก์ชัน
กฎของพารามิเตอร์
คำจำกัดความของฟังก์ชัน JavaScript ไม่ได้ระบุประเภทข้อมูลสำหรับพารามิเตอร์
ฟังก์ชัน JavaScript ไม่ได้ทำการตรวจสอบประเภทอาร์กิวเมนต์ที่ส่งผ่าน
ฟังก์ชัน JavaScript ไม่ตรวจสอบจำนวนอาร์กิวเมนต์ที่ได้รับ
พารามิเตอร์เริ่มต้น
หากมีการเรียกใช้ฟังก์ชันโดยมีอาร์กิวเมนต์ขาดหายไป (น้อยกว่าที่ประกาศไว้) ค่าที่ขาดหายไปจะถูกตั้งค่า
undefined
เป็น
บางครั้งสิ่งนี้เป็นที่ยอมรับ แต่บางครั้งก็เป็นการดีกว่าที่จะกำหนดค่าเริ่มต้นให้กับพารามิเตอร์:
ตัวอย่าง
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ECMAScript 2015อนุญาตค่าพารามิเตอร์เริ่มต้นในการประกาศฟังก์ชัน:
function myFunction(x, y = 2) {
// function code
}
วัตถุอาร์กิวเมนต์
ฟังก์ชัน JavaScript มีอ็อบเจ็กต์ในตัวที่เรียกว่าอ็อบเจกต์อาร์กิวเมนต์
วัตถุอาร์กิวเมนต์ประกอบด้วยอาร์เรย์ของอาร์กิวเมนต์ที่ใช้เมื่อมีการเรียกใช้ฟังก์ชัน (เรียกใช้)
วิธีนี้คุณสามารถใช้ฟังก์ชันเพื่อค้นหา (เช่น) ค่าสูงสุดในรายการตัวเลขได้:
ตัวอย่าง
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
หรือสร้างฟังก์ชันเพื่อรวมค่าอินพุตทั้งหมด:
ตัวอย่าง
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
หากมีการเรียกใช้ฟังก์ชันโดยมีอาร์กิวเมนต์มากเกินไป (มากกว่าที่ประกาศไว้) อาร์กิวเมนต์เหล่านี้สามารถเข้าถึงได้โดยใช้อาร์กิวเมนต์object
อาร์กิวเมนต์ถูกส่งผ่าน Value
พารามิเตอร์ในการเรียกใช้ฟังก์ชันคืออาร์กิวเมนต์ของฟังก์ชัน
อาร์กิวเมนต์ JavaScript ถูกส่งผ่านตามค่า : ฟังก์ชันรับรู้เฉพาะค่าเท่านั้น ไม่ใช่ตำแหน่งของอาร์กิวเมนต์
ถ้าฟังก์ชันเปลี่ยนค่าของอาร์กิวเมนต์ ฟังก์ชันจะไม่เปลี่ยนค่าเดิมของพารามิเตอร์
การเปลี่ยนแปลงอาร์กิวเมนต์จะไม่ปรากฏให้เห็น (สะท้อน) นอกฟังก์ชัน
วัตถุถูกส่งผ่านโดยการอ้างอิง
ใน JavaScript การอ้างอิงอ็อบเจ็กต์คือค่า
ด้วยเหตุนี้ ออบเจกต์จะมีพฤติกรรมเหมือนถูกส่งผ่านโดยการอ้างอิง:
ถ้าฟังก์ชันเปลี่ยนคุณสมบัติของอ็อบเจ็กต์ ฟังก์ชันจะเปลี่ยนค่าเดิม
การเปลี่ยนแปลงคุณสมบัติของวัตถุสามารถมองเห็นได้ (สะท้อน) นอกฟังก์ชัน