ฟังก์ชันหลายประเภทถูกกำหนดไว้ใน JavaScript: 1. ใช้คีย์เวิร์ดของฟังก์ชันเพื่อกำหนดฟังก์ชันผ่านการประกาศหรือนิพจน์ และไวยากรณ์คือ "function functionName(parameters){executed code}" 2. ใช้ตัวสร้างฟังก์ชัน Function() เพื่อสร้าง ฟังก์ชั่น
สภาพแวดล้อมการทำงานของบทช่วยสอนนี้: ระบบ Windows 10, JavaScript เวอร์ชัน 1.8.5, คอมพิวเตอร์ Dell G3
JavaScript ใช้ฟังก์ชันคำหลักเพื่อกำหนดฟังก์ชัน
ฟังก์ชันสามารถกำหนดได้ด้วยการประกาศหรืออาจเป็นนิพจน์ก็ได้
การประกาศฟังก์ชัน
ในบทช่วยสอนก่อนหน้านี้ คุณได้เรียนรู้ไวยากรณ์ของการประกาศฟังก์ชันแล้ว:
function functionName(parameters) { Executed code}
ฟังก์ชั่นจะไม่ถูกดำเนินการทันทีหลังจากที่มีการประกาศ แต่จะถูกเรียกเมื่อเราต้องการ
ตัวสร้างฟังก์ชัน
ตัวสร้างฟังก์ชันถูกใช้เพื่อสร้างวัตถุฟังก์ชัน ใน JavaScript จริงๆ แล้วทุกฟังก์ชันคือวัตถุฟังก์ชัน
ไวยากรณ์ของตัวสร้างฟังก์ชัน:
ฟังก์ชันใหม่ ([arg1[, arg2[, ...argN]],] functionBody)
arg1, arg2, ... argN ถูกใช้เป็นชื่อตัวแปรเหมือนกับชื่อพารามิเตอร์ปกติของฟังก์ชัน เป็นสตริงที่แสดงถึงตัวแปรตัวเดียวหรือสตริงที่คั่นด้วยเครื่องหมายจุลภาคซึ่งแสดงถึงตัวแปรหลายตัวที่สอดคล้องกับข้อกำหนดการระบุตัวแปร JavaScript เช่น "x", "theValue" หรือ "a,b"
functionBody สตริงที่มีคำสั่ง JavaScript ที่กำหนดฟังก์ชัน
คำอธิบาย
1. วัตถุฟังก์ชันจะถูกสร้างขึ้นเมื่อมีการแยกวิเคราะห์ตัวสร้างฟังก์ชันเป็นฟังก์ชัน อย่างไรก็ตาม วิธีนี้จะมีประสิทธิภาพน้อยกว่าการใช้การประกาศฟังก์ชัน นิพจน์ฟังก์ชัน ฯลฯ เนื่องจากฟังก์ชันเหล่านี้จะถูกแยกวิเคราะห์โดยตรงผ่านโค้ด
2. พารามิเตอร์สตริงที่ส่งผ่านไปยังตัวสร้างฟังก์ชันจะถูกใช้เป็นชื่อพารามิเตอร์ตัวแปรของฟังก์ชันที่สร้างโดยตัวสร้างฟังก์ชัน และลำดับที่ปรากฏจะถูกใช้เป็นลำดับของพารามิเตอร์ของฟังก์ชันที่สร้างขึ้น
3. การเรียกตัวสร้างฟังก์ชันเป็นฟังก์ชัน (ไม่ว่าจะแก้ไขด้วยคีย์เวิร์ดใหม่หรือไม่ก็ตาม) ก็ให้ผลเช่นเดียวกัน
ตัวอย่าง
// ตัวอย่างสามารถเรียกใช้ได้โดยตรงในคอนโซล JavaScript ของคุณ // สร้างฟังก์ชันที่รับสองอาร์กิวเมนต์และส่งกลับผลรวมของอาร์กิวเมนต์เหล่านั้น var adder = ฟังก์ชั่นใหม่ ('a', 'b', 'return a + b'); // เรียกใช้ฟังก์ชัน บวก(2, 6); // > 8
พารามิเตอร์ a และ b เป็นชื่อพารามิเตอร์ปกติที่สามารถใช้ในเนื้อหาของฟังก์ชันได้
ฟังก์ชันที่สร้างขึ้นคือ:
ฟังก์ชัน (a,b){ไม่ได้กำหนด กลับ+b; }
เกี่ยวกับวิธีการแยกวิเคราะห์ json: var json = (new Function("return " + str))();
หลักการเหมือนกัน
ฟังก์ชันที่สร้างขึ้นคือ:
function toJson(str){unknown กลับ STR; - var str="{'a':1,'b':'abc'}"; toJson(str);
นั่นคือ: function(){return {'a':1,'b':'abc'}}
ความแตกต่างระหว่างตัวสร้างฟังก์ชันและการประกาศฟังก์ชัน:
ฟังก์ชันที่สร้างด้วยตัวสร้างฟังก์ชันจะไม่ถูกสร้างขึ้นในบริบท การปิดจะถูกสร้างขึ้นในขอบเขตส่วนกลางเสมอ เมื่อดำเนินการฟังก์ชันที่สร้างขึ้น การปิดจะสามารถใช้ได้เฉพาะตัวแปรภายในเครื่องหรือตัวแปรส่วนกลางเท่านั้น ซึ่งแตกต่างจาก eval
คำแนะนำที่เกี่ยวข้อง: บทช่วยสอนการเรียนรู้ JavaScript
ด้านบนคือเนื้อหาโดยละเอียดของฟังก์ชันที่กำหนดโดย JavaScript หลายประเภท สำหรับข้อมูลเพิ่มเติม โปรดใส่ใจกับบทความอื่น ๆ ที่เกี่ยวข้องบนเว็บไซต์ PHP ภาษาจีน