ในบทความก่อนหน้านี้เราได้พูดถึงพารามิเตอร์เริ่มต้นใน JavaScript ในบทความนี้เราจะหารือเกี่ยวกับวัตถุพารามิเตอร์อาร์กิวเมนต์ของ JavaScript
เราจะทำการประมวลผลที่แตกต่างกันได้อย่างไรตามพารามิเตอร์ที่ผ่านในฟังก์ชันในตัวอย่างต่อไปนี้ได้อย่างไร
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น addall () {
// เราทำอะไรที่นี่?
-
// ควรกลับ 6
Addall (1, 2, 3);
// ควรกลับ 10
Addall (1, 2, 3, 4);
โชคดีที่ JavaScript มีวัตถุอาร์กิวเมนต์ที่สามารถจัดการกับสถานการณ์ข้างต้นได้ วัตถุอาร์กิวเมนต์เป็นวัตถุอาร์เรย์ หากคุณต้องการทราบรายละเอียดของวัตถุอาร์กิวเมนต์โปรดคลิกที่นี่ เราใช้วัตถุอาร์กิวเมนต์เพื่อเปลี่ยนตัวอย่างข้างต้น:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น addall () {
var sum = 0;
สำหรับ (var i = 0; i <arguments.length; i ++) {
sum += อาร์กิวเมนต์ [i];
-
ผลรวมกลับ;
-
// ส่งคืน 6
Addall (1, 2, 3);
// ส่งคืน 10
Addall (1, 2, 3, 4);
เราได้กล่าวไว้ข้างต้นว่าวัตถุอาร์กิวเมนต์เป็นวัตถุอาร์เรย์ของชั้นเรียน ลองทดสอบด้านล่าง:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น getName () {
console.log (array.isarray (อาร์กิวเมนต์));
-
// จะส่งออกเท็จ
getName ("Benjamin");
ผลการทดสอบข้างต้นสามารถเห็นได้:
มันไม่ใช่วัตถุอาร์เรย์ดังนั้นความแตกต่างระหว่างวัตถุและอาร์เรย์คืออะไร? กรุณาคลิกที่นี่เพื่อดูรายละเอียด
การดำเนินการตัวอย่างต่อไปนี้จะทำให้เกิดข้อผิดพลาด:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชัน sortargs () {
// uncaught typeerror: undefined ไม่ใช่ฟังก์ชั่น
sorted = arguments.sort ()
กลับมาจัดเรียง;
-
sortargs ();
เราสามารถแปลงวัตถุอาร์เรย์เป็นวัตถุอาร์เรย์ดังต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชัน sortargs () {
// แปลงอาร์กิวเมนต์วัตถุเป็นอาร์เรย์จริง
var args = [] .slice.call (อาร์กิวเมนต์);
// ตอนนี้จะได้ผล!
sorted = args.sort ()
กลับมาจัดเรียง;
-
// จะเอาท์พุท [1, 2, 3]
console.log (sortargs (1,3,2));
หากคุณรู้สึกว่าบทความนี้เป็นประโยชน์กับคุณฉันหวังว่าจะส่งต่อให้กับคนที่ต้องการมากขึ้น หากมีบทความที่ไม่เหมาะสมใด ๆ โปรดฝากข้อความไว้เพื่อแก้ไข