1. مولد مقدمة
المولد هو نوع بيانات جديد قدمه ES6. يبدو وكأنه وظيفة. بالإضافة إلى استخدام العودة ، يمكن إرجاع العائد عدة مرات.
يتم تعريف المولد بواسطة الدالة * ، (رقم * رقم) ،
2. مثال
لا يمكن للوظائف توفير الحالة ، وأحيانًا تكون هناك حاجة إلى متغيرات عالمية لتوفير الأرقام ؛
2.1
"استخدم strant '؛ function next_id () {var id = 1 ؛ بينما (معرف <100) {معرف العائد ؛ id ++ ؛} معرف الإرجاع ؛} // test: varx ، pass = true ، g = next_id () ؛ for (x = 1 ؛ x <100 ؛ x ++) {if (g.next (). value! == x) {pass ؛ {ALERT ('تم تمرير الاختبار!') ؛}2.2 مؤلف حلقة لانهائي
الدالة* idmaker () {var index = 0 ؛ بينما (صواب) فهرس العائد ++ ؛} var gen = idmaker () ؛ // "generator {}" console.log (gen.next (). value) ؛ // 0console.log (gen.next (). value) ؛ // 1console.log (gen.next (). value) ؛ // 22.3generator.prototype.next ()
عندما ينتهي التكرار ، generator.next ().
الدالة* gen () {griven 1 ؛ العائد 2 ؛ العائد 3 ؛} var g = gen () ؛ // "Generator {}" G.Next () ؛ // "object {value: 1 ، int: false}" g.next () ؛ // "Object {value: 2 ، int: false}" g.next () ؛ // "object {value: 3 ، int: false}" g.next () ؛ // "Object {value: undefined ، inst: true}"2.4 generator.prototype.return () ؛
تقوم طريقة الإرجاع بإرجاع قيمة المعلمة المحددة وينهي التكرار
مثال
الدالة* gen () {العائد 1 ؛ العائد 2 ؛ العائد 3 ؛} var g = gen () ؛ g.next () ؛ // {value: 1 ، int: false} g.return ("foo") ؛ // {value: "foo" ، int: true} g.next () ؛ // {value: غير محدد ، تم: True}لاحظ أنه إذا كانت قيمة القيام به صحيحة ، ثم استدعاء إرجاع ، فستكون القيمة التي تم إرجاعها غير محددة أيضًا.
الدالة* gen () {griven 1 ؛} var g = gen () ؛ console.log (g.next ()) ؛ // {value: 1 ، ext: false} console.log (g.next ()) ؛ // {value: undefined ، ext: true} console.log (g. return (1)) ؛ // {value: غير محدد ، تم: True}2.5 Generator.Prototype.throw ()
تستعيد طريقة Thorw () تنفيذ التكرار عن طريق إلقاء استثناء في التكرار ؛
إرجاع كائن كائن بسمتين: القيمة والقيام
الدالة* gen () {بينما (صحيح) {try {griven 42 ؛} catch (e) {console.log ("error catch!) ؛}}} var g = gen () ؛ var a = g.next () ؛ // {value: 42 ، ins: false} var b = g.throw (خطأ جديد ( } console.log (a) ؛ console.log (b.Value+"::"+B.Done) ؛ما سبق هو شرح مفصل لنوع بيانات مولد ES6 في JavaScript الذي قدمه المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!