تعابير تعريف الدوال المولدة في JavaScript
الكلمة المحجوزة function*
تُستخدَم لتعريف دالة مولِّدة داخل تعبير.
البنية العامة
function* name([param[, param[, ... param]]]) {
statements
}
name
اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]).
param
اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي يُفسِّر اللغة.
statements
التعابير البرمجية التي تُشكِّل جسم الدالة.
الوصف
تعابير تعريف الدوال المولِّدة تشبه كثيرًا (وتكاد تماثل) طريقة التصريح عن الدوال المولِّدة (function* declaration)، والفرق الرئيسي بينهما هو اسم الدالة، الذي يمكن حذفه في تعابير تعريف الدوال المولِّدة لإنشاء دوال مولِّدة مجهولة (anonymous generator functions).
أمثلة
مثال بسيط عن تعريف دالة مولِّدة دون اسم وإسناد قيمتها إلى المتغير x
، وستعطي (yields) مربّع قيمة الوسيط المُمرَّر إليها:
var x = function*(y) {
yield y * y;
};
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | 39 | 26 | غير مدعومة | 26 | 10 |
على النقيض من متصفح IE، يدعم متصفح Edge هذه الميزة.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).