1. บทนำเครื่องกำเนิดไฟฟ้า
Generator เป็นประเภทข้อมูลใหม่ที่แนะนำโดย ES6 ดูเหมือนฟังก์ชั่น นอกเหนือจากการใช้ผลตอบแทนแล้วผลผลิตสามารถส่งคืนได้หลายครั้ง
เครื่องกำเนิดถูกกำหนดโดยฟังก์ชั่น *, (หมายเหตุ * หมายเลข),
2. ตัวอย่าง
ฟังก์ชั่นไม่สามารถบันทึกสถานะได้และบางครั้งตัวแปรทั่วโลกจำเป็นต้องมีการบันทึกตัวเลข
2.1
'ใช้อย่างเข้มงวด'; ฟังก์ชั่น next_id () {var id = 1; ในขณะที่ (id <100) {ide id; id ++;} return id;} // ทดสอบ: varx, pass = true, g = next_id (); สำหรับ (x = 1; x <100; x ++) {Alert ('ทดสอบผ่าน!');}2.2 ตัววนซ้ำที่ไม่มีที่สิ้นสุด
ฟังก์ชั่น* idmaker () {var index = 0; ในขณะที่ (จริง) ดัชนีผลผลิต ++;} var gen = idmaker (); // "Generator {}" console.log (gen.next (). ค่า); // 0console.log (gen.next (). ค่า); // 1console.log (gen.next (). ค่า); // 22.3Generator.prototype.next ()
เมื่อการวนซ้ำสิ้นสุดลง generator.next (). ทำ === true ก่อนที่จะสิ้นสุด === FALSE
ฟังก์ชั่น* gen () {ผลผลิต 1; ผลผลิต 2; ผลผลิต 3;} var g = gen (); // "Generator {}" G.Next (); // "วัตถุ {value: 1, ทำ: false}" g.next (); // "วัตถุ {ค่า: 2, ทำ: false}" g.next (); // "วัตถุ {ค่า: 3, ทำ: false}" g.next (); // "วัตถุ {ค่า: ไม่ได้กำหนดเสร็จแล้ว: จริง}"2.4 Generator.prototype.return ();
วิธีการส่งคืนส่งคืนค่าพารามิเตอร์ที่กำหนดและสิ้นสุดตัววนซ้ำ
ตัวอย่าง
ฟังก์ชั่น* gen () {ผลผลิต 1; ผลผลิต 2; ผลผลิต 3;} var g = gen (); g.next (); // {value: 1, ทำ: false} g.return ("foo"); // {value: "foo", ทำ: true} g.next (); // {ค่า: ไม่ได้กำหนดเสร็จแล้ว: จริง}โปรดทราบว่าหากค่าของ DONE เป็นจริงและจากนั้นโทรกลับค่าที่ส่งคืนจะไม่ได้กำหนด
ฟังก์ชั่น* gen () {ผลผลิต 1;} var g = gen (); console.log (g.next ()); // {ค่า: 1, เสร็จสิ้น: false} console.log (g.next ()); // {ค่า: undefined, ทำ: จริง} console.log (g.return (1)); // {ค่า: ไม่ได้กำหนดเสร็จแล้ว: จริง}2.5 Generator.prototype.throw ()
วิธี thorw () ฟื้นการดำเนินการของตัววนซ้ำโดยการโยนข้อยกเว้นลงในตัววนซ้ำ
ส่งคืนวัตถุวัตถุที่มีสองแอตทริบิวต์: ค่าและเสร็จสิ้น
ฟังก์ชั่น* gen () {ในขณะที่ (จริง) {ลอง {ให้ผลผลิต 42;} catch (e) {console.log ("ข้อผิดพลาดจับ!");}}} var g = gen (); var a = g.next (); // {ค่า: 42, ทำ: เท็จ } console.log (a); console.log (b.value+"::"+b.done);ข้างต้นเป็นคำอธิบายโดยละเอียดของประเภทข้อมูลตัวสร้าง ES6 ใน JavaScript ที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!