หลักสูตรคืออะไร
Currying เป็นกระบวนการแปลงที่แปลงฟังก์ชั่นที่ยอมรับพารามิเตอร์หลายตัวเป็นฟังก์ชันที่ยอมรับพารามิเตอร์เดียว (หมายเหตุการแปล: พารามิเตอร์แรกของฟังก์ชันดั้งเดิม) หากจำเป็นต้องมีพารามิเตอร์อื่น ๆ ให้ส่งคืนฟังก์ชั่นใหม่ที่ยอมรับพารามิเตอร์ที่เหลือและส่งคืนผลลัพธ์
การทำงานของ Keli Chemical Found ความคิด: แนวคิดการประมวลผลล่วงหน้า JS; หลักการที่การใช้ฟังก์ชั่นการใช้งานสามารถสร้างขอบเขตที่ไม่ได้ถูกทำลายสามารถเกิดขึ้นได้และเนื้อหาทั้งหมดที่ต้องถูกประมวลผลล่วงหน้าจะถูกเก็บไว้ในขอบเขตนี้ที่ไม่ได้ถูกทำลายสามารถส่งคืนได้และฟังก์ชั่นเล็ก ๆ จะถูกดำเนินการในฟังก์ชั่นขนาดเล็ก
ฟังก์ชั่นการแกงกะหรี่ส่วนใหญ่มีบทบาทในการประมวลผลล่วงหน้า
ฟังก์ชั่นของวิธีการผูก: ประมวลผลล่วงหน้าสิ่งนี้ในวิธีการโทรกลับการโทรกลับผ่านเป็นบริบทบริบท
รหัสของวิธีการใช้วิธีการผูก 1 หลักการ 1 มีดังนี้:
/*** หลักการของการใช้วิธีการผูก 1* @param callback [ฟังก์ชั่น] ฟังก์ชั่นการเรียกกลับ* @param บริบท [วัตถุ] บริบท* @returns {function} เปลี่ยนฟังก์ชั่นที่ชี้ไปที่*/ฟังก์ชั่นนี้ (การเรียกกลับ, บริบท) ฟังก์ชัน return () {var innerarg = array.prototype.slice.call (อาร์กิวเมนต์, 0); // หมายถึงการใช้พารามิเตอร์อาร์กิวเมนต์ทั้งหมดในขอบเขตปัจจุบัน; callback.apply (บริบท, outerarg.concat (innerarg));}}รหัสต่อไปนี้เลียนแบบหลักการของการใช้งานการผูกบนห่วงโซ่ต้นแบบ
/*** เลียนแบบหลักการของการใช้งานการผูกในห่วงโซ่ต้นแบบ (ความคิดฟังก์ชั่นการทำงานของเกาหลีและเคมี)* @param บริบท [วัตถุ] บริบท* @returns {function} เปลี่ยนฟังก์ชั่นที่ชี้ไปที่*/function.prototype.mybind = ฟังก์ชั่น mybind (บริบท) {var _this = this; if ('bind' ใน function.prototype) {return this.bind.apply (นี่, [บริบท] .concat (outarg));} // ฟังก์ชั่นส่งคืนในกรณีของความไม่ลงรอยกัน () {var inarg = array.prototype.slice.call (อาร์กิวเมนต์, 0); = outarg.concat (inarg); _ this.apply (บริบท, arg);}}ฟังก์ชั่นการแกงกะหรี่
ในวิทยาศาสตร์คอมพิวเตอร์แกงเป็นเทคนิคของการแปลงฟังก์ชั่นที่ยอมรับพารามิเตอร์หลายตัวเป็นฟังก์ชันที่ยอมรับพารามิเตอร์เดียว (พารามิเตอร์แรกของฟังก์ชันดั้งเดิม) และส่งคืนฟังก์ชั่นใหม่ที่ยอมรับพารามิเตอร์ที่เหลือและส่งกลับผลลัพธ์
Currying หมายถึงการผ่านพารามิเตอร์บางอย่างล่วงหน้าเพื่อรับฟังก์ชั่นง่าย ๆ แต่พารามิเตอร์ล่วงหน้าจะถูกบันทึกไว้ในการปิดดังนั้นจึงมีคุณสมบัติที่แปลกประหลาด ตัวอย่างเช่น:
ตัวอย่าง:
var adder = function (num) {return function (y) {return num + y;}} var inc = adder (1); var dec = adder (-1); // inc, DEC ตอนนี้สองฟังก์ชั่นใหม่ซึ่งใช้ในการส่งผ่านค่าพารามิเตอร์พารามิเตอร์ (+/-) 1Alert (Inc (99)); // 100Alert (ธ.ค. (101)); // 100Alert (adder (100) (2)); // 102Alert (adder (2) (100)); // 102เนื้อหาข้างต้นคือฟังก์ชั่นการดัดผมจาวาสคริปต์และวิธีการใช้วิธีการผูกที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน!