Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ส่งผ่านจำนวนอาร์กิวเมนต์ที่ไม่รู้จักไปยังฟังก์ชันใน Javascript


เมื่อคุณเรียกใช้ฟังก์ชันใน JavaScript คุณสามารถส่งผ่านอาร์กิวเมนต์จำนวนเท่าใดก็ได้ ไม่มีการจำกัดพารามิเตอร์ของฟังก์ชัน นอกจากนี้ยังหมายความว่าฟังก์ชันไม่สามารถโอเวอร์โหลดได้ด้วยวิธีดั้งเดิมใน js

วัตถุอาร์กิวเมนต์เป็นตัวแปรท้องถิ่นที่มีอยู่ในฟังก์ชันที่ไม่ใช่ลูกศรทั้งหมด คุณสามารถอ้างถึงอาร์กิวเมนต์ของฟังก์ชันภายในฟังก์ชันนั้นได้โดยใช้อ็อบเจ็กต์อาร์กิวเมนต์ มีรายการสำหรับแต่ละอาร์กิวเมนต์ที่เรียกใช้ฟังก์ชัน โดยดัชนีของรายการแรกเป็น 0

ตัวอย่างเช่น หากฟังก์ชันถูกส่งผ่าน 3 อาร์กิวเมนต์ คุณสามารถเข้าถึงได้ดังนี้ −

arguments[0] // first argument
arguments[1] // second argument
arguments[2] // third argument

หมายเหตุ − อาร์กิวเมนต์เป็นอ็อบเจกต์คล้ายอาร์เรย์ที่สามารถเข้าถึงได้ภายในฟังก์ชันที่มีค่าของอาร์กิวเมนต์ที่ส่งผ่านไปยังฟังก์ชันนั้น “เหมือนอาร์เรย์” หมายความว่าอาร์กิวเมนต์มีคุณสมบัติความยาวและคุณสมบัติที่จัดทำดัชนีจากศูนย์ แต่ไม่มีวิธีการในตัวของ Array เช่น forEach() และ map()

ตัวอย่างเช่น หากต้องการรับจำนวนอาร์กิวเมนต์ตามอำเภอใจ คุณสามารถสร้างฟังก์ชันได้ดังนี้ −

ตัวอย่าง

function printAllArguments(a, b) {
   console.log("First arg: " + a)
   console.log("Second arg: " + b)
   console.log("All args: " + arguments)
}
printAllArguments(1)
printAllArguments(1, "hello")
printAllArguments(1, "hello", 1, "hello")

ผลลัพธ์

First arg: 1 
Second arg: undefined 
All args: {"0":1}
First arg: 1
Second arg: hello 
All args: {"0":1,"1":"hello"} 
First arg: 1
Second arg: hello 
All args: {"0":1,"1":"hello","2":1,"3":"hello"}