ผู้เชี่ยวชาญใช้อ้อม! สิ่งนี้ไม่มีส่วนเกี่ยวข้องกับการปิดตัวเองและฉันไม่รู้ว่าจะได้รับชื่อเรื่องอย่างไรดังนั้นฉันจึงรวบรวมหมายเลข ฉันหวังว่าฉันจะให้อภัยฉัน!
วันนี้เพื่อนที่เพิ่งเรียนรู้ JS ให้รหัสฉันและถามฉันว่าทำไมวิธีการไม่ได้ดำเนินการ รหัสมีดังนี้:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น makefunc (x) {
return function () {
กลับ x;
-
-
การแจ้งเตือน (Makefunc (0));
ในความเป็นจริงไม่ใช่ว่าไม่ใช่ว่ามันไม่ได้ดำเนินการ แต่เพื่อนหมายถึงการแจ้งเตือนควรเป็น "0" ไม่ใช่ฟังก์ชัน () {return x;}
ไม่ใช่ว่าสคริปต์นั้นถูกเขียนผิด แต่ก็ไม่เข้าใจการส่งคืนออกจากฟังก์ชั่นปัจจุบันและส่งคืนค่าจากฟังก์ชั่นนั้น หากฟังก์ชั่นที่ส่งคืนเป็นฟังก์ชั่นฟังก์ชั่นที่ส่งคืนเองก็เป็นฟังก์ชันเอง
คุณสามารถแก้ไขรหัสด้านบนเช่นนี้ซึ่งก็คือการแจ้งเตือน (Makefunc (0) ()):
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น makefunc (x) {
return (function () {
กลับ x;
-
-
การแจ้งเตือน (makefunc (0) ());
หากคุณต้องการส่งคืนผลลัพธ์ของการดำเนินการฟังก์ชั่นคุณต้องปล่อยให้ฟังก์ชั่นดำเนินการตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น makefunc (x) {
return (function () {
กลับ x;
-
-
การแจ้งเตือน (Makefunc (0));
นี่คือฟังก์ชั่นที่ไม่ระบุชื่อ
การคัดลอกรหัสมีดังนี้:
(การทำงาน (){
กลับ x;
-
ภายในวงเล็บแรกเป็นฟังก์ชั่นที่ไม่ระบุชื่อตัวยึดที่สองใช้เพื่อเรียกใช้ฟังก์ชันที่ไม่ระบุชื่อและคุณสามารถส่งผ่านพารามิเตอร์ที่ต้องการในวงเล็บที่สอง ตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
(ฟังก์ชั่น (x, y) {
การแจ้งเตือน (x + y);
}) (ยี่สิบสาม);