หากคุณต้องการสร้างฟังก์ชั่นใน JavaScript มีสองวิธี: การประกาศการทำงาน, การแสดงออกของฟังก์ชันการเขียนแต่ละครั้งมีดังนี้:
// วิธีการที่ 1: การประกาศการทำงาน foo () {} // เมธอด 2: ฟังก์ชันนิพจน์ฟังก์ชั่น var = ฟังก์ชัน () {};นอกจากนี้ยังมีการแสดงออกของฟังก์ชั่นที่ถูกดำเนินการด้วยตนเองซึ่งส่วนใหญ่ใช้เพื่อสร้างขอบเขตใหม่
(function () {// var x = ... }) ();นิพจน์ฟังก์ชั่นที่ถูกกำหนดด้วยตนเองนี้จัดเป็นวิธีที่สองของสองวิธีข้างต้นซึ่งสามารถถือได้ว่าเป็นนิพจน์การทำงาน
วิธีการที่ 1 และ Method II สร้างฟังก์ชั่นและตั้งชื่อ Foo แต่มีความแตกต่างระหว่างทั้งสอง มีกลไกที่มีอยู่ในล่าม JavaScript ที่ได้รับการส่งเสริม (การยก) ซึ่งหมายความว่าคำสั่งของตัวแปร (ฟังก์ชั่น) จะได้รับการส่งเสริมให้อยู่ในระดับแนวหน้าของขอบเขต
ตัวอย่างเช่นส่วนรหัสต่อไปนี้:
การแจ้งเตือน (foo); // function bar_fn () {}ผลลัพธ์ผลลัพธ์คือฟังก์ชั่น foo () {}, ไม่ได้กำหนด, ฟังก์ชั่น foo () {}, และฟังก์ชั่น bar_fn () {}
จะเห็นได้ว่าคำสั่งของ Foo นั้นเขียนขึ้นหลังจากการแจ้งเตือนและยังสามารถเรียกได้อย่างถูกต้องเพราะล่าม JavaScript จะเพิ่มขึ้นไปยังการแจ้งเตือนด้านหน้าและแถบฟังก์ชันที่สร้างขึ้นโดยการแสดงออกของฟังก์ชั่นไม่สนุกกับการรักษานี้
ดังนั้นบาร์ได้รับการปรับปรุงหรือไม่?
ดังนั้นลำดับของรหัสด้านบนของเอ็นจิ้น JavaScript อาจเป็นเช่นนี้:
บันทึก:
การพูดอย่างเคร่งครัดถ้าคุณสร้างฟังก์ชั่นใน JavaScript มีวิธีอื่นที่เรียกว่า "วิธีการโครงสร้างฟังก์ชัน":
var foo = function ('Alert ("hi!");'); วิธีนี้ใช้สตริงเป็นพารามิเตอร์ในการสร้างร่างกายฟังก์ชัน อย่างไรก็ตามในวิธีนี้ประสิทธิภาพการดำเนินการจะลดลงและดูเหมือนว่าพารามิเตอร์ไม่สามารถส่งผ่านได้ดังนั้นจึงเป็นการดีกว่าที่จะใช้น้อยลง