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

من موسوعة حسوب
< JavaScript
مراجعة 15:38، 28 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

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

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