ฟังก์ชั่นที่ไม่ระบุชื่อสามารถตรวจสอบให้แน่ใจว่า JavaScript ถูกเขียนบนหน้าโดยไม่ทำให้ตัวแปรทั่วโลกมีการปนเปื้อน
สิ่งนี้ใช้งานได้ดีและสวยงามเมื่อเพิ่มจาวาสคริปต์ลงในหน้าเว็บที่ไม่คุ้นเคยมาก
1. ฟังก์ชั่นที่ไม่ระบุชื่อคืออะไร?
โดยทั่วไปมีสามวิธีในการกำหนดฟังก์ชันใน JavaScript:
คำสั่งคำหลักของฟังก์ชั่น:
ฟังก์ชั่น fnmethodname (x) {Alert (x);}
ฟังก์ชั่นตัวอักษร:
var fnmethodname = function (x) {Alert (x);}
ฟังก์ชัน () ตัวสร้าง:
var fnmethodname = ฟังก์ชันใหม่ ('x', 'Alert (x);')
สามวิธีข้างต้นกำหนดฟังก์ชันวิธีการเดียวกัน fnmethodname
วิธีแรกคือวิธีที่ใช้กันมากที่สุด สองหลังคือการคัดลอกฟังก์ชั่นไปยังตัวแปร fnmethodname และฟังก์ชั่นนี้ไม่มีชื่อนั่นคือฟังก์ชั่นที่ไม่ระบุชื่อ
ในความเป็นจริงภาษาค่อนข้างมากมีฟังก์ชั่นที่ไม่ระบุชื่อ
2. ความแตกต่างระหว่างตัวอักษรฟังก์ชั่นและฟังก์ชั่น () ตัวสร้าง
แม้ว่าฟังก์ชั่นตัวอักษรเป็นฟังก์ชั่นที่ไม่ระบุชื่อไวยากรณ์อนุญาตให้ระบุชื่อฟังก์ชันใด ๆ มันสามารถเรียกได้ว่าตัวเองเมื่อเขียนฟังก์ชั่นการเรียกซ้ำ แต่ไม่สามารถทำได้โดยใช้ตัวสร้างฟังก์ชัน ()
var f = ฟังก์ชั่นข้อเท็จจริง (x) {ถ้า (x <= 1) ส่งคืน 1; อื่นกลับ x*ข้อเท็จจริง (x-1); -
ตัวสร้างฟังก์ชัน () ช่วยให้การสร้างแบบไดนามิกและการรวบรวมรหัส JavaScript ที่รันไทม์ ด้วยวิธีนี้มันคล้ายกับฟังก์ชั่น Global Function Eval ()
ฟังก์ชั่น () คอนสตรัคเตอร์แยกวิเคราะห์ร่างกายฟังก์ชั่นทุกครั้งที่ดำเนินการและสร้างวัตถุฟังก์ชั่นใหม่ ดังนั้นประสิทธิภาพของการเรียกใช้ฟังก์ชัน () ตัวสร้างในลูปหรือฟังก์ชั่นที่ดำเนินการบ่อยครั้งจึงต่ำมาก ในทางตรงกันข้ามตัวอักษรฟังก์ชั่นจะไม่ถูกคอมไพล์ใหม่ทุกครั้งที่พบมัน
เมื่อสร้างฟังก์ชั่นด้วยตัวสร้างฟังก์ชัน () มันไม่เป็นไปตามขอบเขตทั่วไปมันจะดำเนินการเป็นฟังก์ชันระดับบนสุดเสมอ
var y = "global";
ฟังก์ชัน ConstructFunction () {var y = "local"; ส่งคืนฟังก์ชั่นใหม่ ("return y"); // ไม่สามารถรับตัวแปรท้องถิ่น} Alert (ConstructFunction () ()); // เอาท์พุท "ทั่วโลก" และคำจำกัดความคำหลักของฟังก์ชั่นมีลักษณะของตัวเองและใช้งานยากกว่าตัวสร้างฟังก์ชั่น ()
ดังนั้นเทคโนโลยีนี้มักจะไม่ค่อยได้ใช้
ฟังก์ชั่นการแสดงออกที่แท้จริงและคำจำกัดความคำหลักของฟังก์ชั่นมีความคล้ายคลึงกันมาก
เมื่อพิจารณาถึงความแตกต่างก่อนหน้านี้แม้ว่าจะมีข้อความบอกว่าฟังก์ชั่นที่ไม่ระบุชื่อตามตัวอักษรมีข้อบกพร่องภายใต้เครื่องยนต์ WebKit บางตัวภายใต้ OS X 10.4.3
แต่สิ่งที่เรามักจะเรียกฟังก์ชั่นที่ไม่ระบุชื่ออ้างถึงฟังก์ชั่นที่ไม่ระบุชื่อซึ่งใช้รูปแบบการทำงานที่แท้จริง
3. โหมดรหัสของฟังก์ชันที่ไม่ระบุชื่อ
โหมดข้อผิดพลาด: ไม่สามารถใช้งานได้เบราว์เซอร์จะรายงานข้อผิดพลาดทางไวยากรณ์
ฟังก์ชัน () {แจ้งเตือน (1); -
ฟังก์ชั่นตัวอักษร: ก่อนอื่นประกาศวัตถุฟังก์ชันจากนั้นดำเนินการ
(function () {Alert (1);}) ();
การแสดงออกพิเศษ:
(function () {Alert (2);} ());
ตัวดำเนินการโมฆะ:
ฟังก์ชั่นโมฆะ () {แจ้งเตือน (3); } () เหมือนกัน Hedger Wang ชอบประเภทที่สามด้วยเหตุผลส่วนตัวในขณะที่ในแอปพลิเคชันจริงฉันเห็นและใช้ประเภทแรก
4. แอปพลิเคชันของฟังก์ชั่นที่ไม่ระบุชื่อ
ประโยคแรกใน "รูปแบบโมดูลของ JavaScript" คือ "ตัวแปรทั่วโลกคือปีศาจ"
ด้วยคำหลัก VAR ฟังก์ชั่นที่ไม่ระบุชื่อสามารถตรวจสอบให้แน่ใจว่า JavaScript ถูกเขียนบนหน้าโดยไม่ก่อให้เกิดมลพิษต่อตัวแปรทั่วโลก
สิ่งนี้ใช้งานได้ดีและสวยงามเมื่อเพิ่มจาวาสคริปต์ลงในหน้าเว็บที่ไม่คุ้นเคยมาก
ในความเป็นจริง Yui และตัวอย่างที่เกี่ยวข้องใช้ฟังก์ชั่นที่ไม่ระบุชื่อจำนวนมากและไลบรารี JavaScript อื่น ๆ ก็ใช้จำนวนมากเช่นกัน
รากฐานที่สำคัญของการเขียนโปรแกรมการทำงานใน JavaScript
สำหรับรายละเอียดโปรดดู "การเขียน JavaScript ที่สวยงามด้วยเทคโนโลยีการเขียนโปรแกรมที่ใช้งานได้" และ "คู่มือการเขียนโปรแกรม JavaScript ที่ใช้งานได้"
คำอธิบายโดยละเอียดข้างต้นเกี่ยวกับการใช้งานและข้อดีและข้อเสียของฟังก์ชั่นที่ไม่ระบุชื่อใน JavaScript เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น