การคัดลอกรหัสมีดังนี้:
var add = function (a) {
ฟังก์ชั่น return (b) {
ฟังก์ชั่น return (c) {
ส่งคืน A+B+C;
-
-
-
เพิ่ม (1) (2) (3); // 6
ถูกต้อง หากมี 4 สายเช่นเพิ่ม (1) (2) (3) (4) สิ่งนี้จะไม่นำมาใช้อย่างแน่นอน
สิ่งนี้คล้ายกับการดำเนินการฟังก์ชันเพื่อส่งคืนค่าของฟังก์ชั่นของตัวเอง:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นเพิ่ม (x) {
var sum = x;
var tmp = function (y) {
ผลรวม = sum + y;
กลับ TMP;
-
tmp.toString = function () {
ผลรวมกลับ;
-
กลับ TMP;
-
console.log (เพิ่ม (1) (2) (3)); // 6
console.log (เพิ่ม (1) (2) (3) (4)); // 10
อย่างไรก็ตามหลังจากการคำนวณเสร็จสิ้นฟังก์ชั่น TMP จะถูกส่งคืนเพื่อให้ไม่สามารถรับการคำนวณได้ ผลลัพธ์ที่เราต้องการคือหมายเลขที่คำนวณได้ แล้วเราควรทำอย่างไร? ก่อนอื่นเราจำเป็นต้องรู้ว่าใน JavaScript การพิมพ์และการเพิ่มการคำนวณจะเรียกฟังก์ชั่น toString หรือค่าของฟังก์ชันตามลำดับดังนั้นเราจึงเขียน ToString และ ValueOf ของ TMP ใหม่เพื่อส่งคืนค่าผลรวม
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่าคุณจะชอบมัน