تعابير تعريف الدوال المولدة في JavaScript

من موسوعة حسوب
مراجعة 09:02، 16 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الكلمة المحجوزة 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 هذه الميزة.

مصادر ومواصفات