บทความนี้อธิบายถึงการใช้ฟังก์ชันที่ไม่ระบุชื่อใน JavaScript แบ่งปันสำหรับการอ้างอิงของคุณ การวิเคราะห์เฉพาะมีดังนี้:
สรุป:
บทความนี้อธิบายสิ่งที่พื้นฐานและสำคัญที่สุดเกี่ยวกับ JavaScript - ฟังก์ชั่น เหตุผลที่ฉันเขียนบทความนี้เป็นเพราะฉันถามมันในระหว่างการสัมภาษณ์ซึ่งถือว่าเป็นการตรวจสอบอดีตและเรียนรู้ใหม่
มาเป็นตัวอย่างก่อน หากคุณเข้าใจมันหมายความว่าคุณเข้าใจว่าบทความนี้จะพูดถึงอะไร
คัดลอกรหัสดังนี้: var f = (ฟังก์ชัน () {
ฟังก์ชัน f () {return 10;}
กลับ f ();
ฟังก์ชัน f () {return 20;}
var f = 30;
-
console.log (f);
ในการเขียนโปรแกรมขั้นสูงของ JavaScript ฟังก์ชั่นอธิบายไว้ในวิธีนี้ - พวกเขาสามารถห่อหุ้มจำนวนคำสั่งใด ๆ และสามารถเรียกและดำเนินการได้ทุกที่และทุกเวลา ฉันได้แนะนำโหมดที่เข้มงวดมาก่อนและโหมดที่เข้มงวดมีข้อ จำกัด บางประการเกี่ยวกับฟังก์ชั่น:
①ฟังก์ชั่นไม่สามารถตั้งชื่อ eval หรืออาร์กิวเมนต์
②พารามิเตอร์ไม่สามารถตั้งชื่อเป็น eval หรืออาร์กิวเมนต์
③พารามิเตอร์ชื่อสองชื่อไม่สามารถเป็นชื่อเดียวกันได้
สถานการณ์ข้างต้นจะทำให้เกิดข้อผิดพลาดทางไวยากรณ์และรหัสจะไม่ถูกดำเนินการ
นิยามฟังก์ชั่น
คำจำกัดความของฟังก์ชั่นแบ่งออกเป็นสามประเภท
1. ตัวสร้าง
การคัดลอกรหัสมีดังนี้: var fun = new funciton ();
2. คำจำกัดความธรรมดา
คัดลอกรหัสดังต่อไปนี้: function fun () {}
3. คำจำกัดความการทำงาน
การคัดลอกรหัสมีดังนี้: var fun = function () {};
ทั้งสามวิธีสามารถกำหนดฟังก์ชั่นสนุก
พารามิเตอร์
ฟังก์ชั่นไม่ทราบว่ามีพารามิเตอร์จำนวนเท่าใดที่ผ่านมาและพวกเขาไม่สนใจเกี่ยวกับประเภทข้อมูลที่พารามิเตอร์ที่ผ่านเข้ามาแม้ว่าฟังก์ชั่นที่คุณกำหนดเฉพาะจะได้รับพารามิเตอร์สองพารามิเตอร์คุณอาจไม่ผ่านพารามิเตอร์สองตัวเมื่อเรียกใช้ฟังก์ชันนี้ หนึ่งหรือสามสามารถส่งผ่านหรือไม่มีพารามิเตอร์ เหตุผลก็คือพารามิเตอร์จะถูกแสดงภายในโดยอาร์เรย์ ในร่างกายฟังก์ชันคุณสามารถเข้าถึงอาร์เรย์พารามิเตอร์ผ่านวัตถุอาร์กิวเมนต์ได้เช่น
คัดลอกรหัสดังต่อไปนี้: ฟังก์ชั่น sayshi () {
การแจ้งเตือน ("สวัสดี" + อาร์กิวเมนต์ [0] + "," + อาร์กิวเมนต์ [1]);
-
โดยการเข้าถึงคุณสมบัติความยาวของวัตถุอาร์กิวเมนต์เราสามารถรู้ได้ว่ามีพารามิเตอร์กี่ตัว ความยาวของฟังก์ชั่นจะส่งคืนจำนวนพารามิเตอร์ของฟังก์ชัน
หมายเหตุ: พารามิเตอร์ทั้งหมดผ่านค่าและเป็นไปไม่ได้ที่จะส่งพารามิเตอร์ผ่านการอ้างอิง
ฟังก์ชั่นไม่สามารถใช้งานได้มากเกินไปพวกเขาสามารถเขียนใหม่ได้เท่านั้น
หากมีการกำหนดสองฟังก์ชั่นที่มีชื่อเดียวกันชื่อจะเป็นของฟังก์ชั่นที่กำหนดไว้ล่าสุดตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นเพิ่ม (num) {
ส่งคืน num + 100;
-
ฟังก์ชั่นเพิ่ม (num) {
ส่งคืน num + 200;
-
var result = เพิ่ม (100) // 300
หมายเหตุ: ฟังก์ชั่นหยุดและออกทันทีหลังจากดำเนินการคำสั่ง Return
ประเภทฟังก์ชัน
ฟังก์ชั่นแบ่งออกเป็นสองประเภท: ฟังก์ชันชื่อและฟังก์ชั่นที่ไม่ระบุชื่อ ตัวอย่างเช่นฟังก์ชั่นที่มีชื่อเสียงต่อไปนี้
คัดลอกรหัสดังนี้: ฟังก์ชั่น fun () {
-
ถ้าเรียกว่าแค่สนุก () เป็นสิ่งจำเป็น
ฟังก์ชั่นที่ไม่ระบุชื่อตามชื่อหมายถึงไม่มีชื่อฟังก์ชั่น ตัวอย่างเช่น
การทำงาน() {}
การเรียกใช้ฟังก์ชันเรียกผ่านชื่อฟังก์ชั่น จะเรียกฟังก์ชั่นที่ไม่ระบุชื่อได้อย่างไร? หนึ่งคือการกำหนดฟังก์ชันที่ไม่ระบุชื่อให้กับตัวแปรทำให้ตัวแปรนี้ทำหน้าที่เป็นชื่อฟังก์ชัน อีกวิธีหนึ่งคือใช้ () เรียกมันตัวอย่างเช่นสามวิธีต่อไปนี้
1. (ฟังก์ชัน () {return;} ());
2. (ฟังก์ชัน () {return;}) ();
3. function () {return;} ();
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
(ฟังก์ชั่น (x, y) {
การแจ้งเตือน (x + y);
}) (2,3);
// Alert (5)
2 และ 3 จะถูกส่งผ่านเป็นพารามิเตอร์ไปยัง x และ y
มาพูดถึงตัวอย่างยอดนิยม ตัวอย่างนี้เกี่ยวข้องกับการปิดซึ่งจะมีการหารือในภายหลัง
ก่อนอื่นกำหนดตัวแปร F จากนั้นกำหนดฟังก์ชันที่ไม่ระบุชื่อ ที่นี่เราต้องทราบว่าคำจำกัดความของตัวแปรทั้งหมดในฟังก์ชันจะเป็นที่ตั้งไว้ล่วงหน้าดังนั้นลำดับการดำเนินการในฟังก์ชันที่ไม่ระบุชื่อคือ
การคัดลอกรหัสมีดังนี้:
var f = (function () {
var f = 30;
ฟังก์ชัน f () {return 10;}
ฟังก์ชัน f () {return 20;}
กลับ f ();
-
ตัวแปรด้านนอก F และตัวแปรด้านใน F ไม่ได้อยู่ในขอบเขตเดียวกัน (ปิด) ดังนั้นพวกเขาจึงไม่ส่งผลกระทบต่อกันและกัน เนื่องจากฟังก์ชั่นไม่สามารถโหลดมากเกินไปตัวแปรด้านนอก f = (ฟังก์ชั่น f () {return 20;}) (); ดังนั้นเอาต์พุตสุดท้ายคือ 20
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม JavaScript ของทุกคน