diff options
Diffstat (limited to 'files/ar/glossary/function/index.html')
-rw-r--r-- | files/ar/glossary/function/index.html | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/files/ar/glossary/function/index.html b/files/ar/glossary/function/index.html new file mode 100644 index 0000000000..169997f62c --- /dev/null +++ b/files/ar/glossary/function/index.html @@ -0,0 +1,87 @@ +--- +title: دالة +slug: Glossary/Function +tags: + - جافاسكربت + - مسرد +translation_of: Glossary/Function +--- +<p dir="rtl"><strong>الدالة</strong> (بالإنجليزيَّة: Function) هي قطعة من الكود يُمكِن استدعاؤها من جزء آخر أو من قبل نفسها، أو هي {{Glossary("variable", "مُتغيِّر")}} يشير إلى دالة. عندما تُستدعى الدالة، تُمرَّر {{Glossary("Argument", "المُعطيات")}} إلى الدالة كمُدخلات، كما يُمكِن للدالة - اختياريًا - أن تُعيد مُخرجًا. تُصنَّف الدوال في لغة {{glossary("JavaScript", "الجافاسكربت")}} على أنهَّا {{glossary("object", "كائنات")}}.</p> + +<p dir="rtl">اسم الدالة هو {{Glossary("identifier", "مُعرِّف")}} يُصرَّح عنه كجزء من كود التصريح عن الدالة. يعتمد {{Glossary("scope", "مجال")}} اسم الدالة على ما إذا كان اسمها تصريحًا أم تعبيرًا (حيث إذا كان تصريحًا سيُحمَّل قبل تنفيذ الكود، أما إذا كان تعبيرًا سيُحمَّل عند وصول المُفسِّر إليه. طالع <a href="https://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascrip">هذا السؤال</a> للمزيد من المعلومات).</p> + +<h3 dir="rtl" id="الأنواع_المختلفة_للدوال">الأنواع المختلفة للدوال</h3> + +<p dir="rtl"><strong>الدالة المجهولة </strong>(بالإنجليزيَّة: Anonymous function) هي دالة لا تملك اسمًا:</p> + +<pre class="brush: js">function () {}; +// أو باستخدام الأسهم في إصدار EMAScript 2015 +() => {}; +</pre> + +<p dir="rtl"><strong>الدالة المُسمّاة</strong> (بالإنجليزيَّة: Named function) هي دالة تملك اسمًا:</p> + +<pre class="brush: js">function foo() {}; +// أو باستخدام الأسهم في إصدار EMAScript 2015 +const foo = () => {}; +</pre> + +<p dir="rtl"><strong>الدالة المُحاطة</strong> (بالإنجليزيَّة: Inner function) هي دالة بداخل أخرى (الدالة <code>square</code> كما في مثالنا أدناه). <strong>الدالة المُحيطة</strong> (outer function) هي دالة (الدالة <code>addSquares</code> كما في مثالنا أدناه) تُحيط بأخرى:</p> + +<pre class="brush: js">function addSquares(a,b) { + function square(x) { + return x * x; + } + return square(a) + square(b); +}; +//باستخدام الأسهم في إصدار ECMAScript 2015 +const addSquares = (a,b) => { + const square = x => x*x; + return square(a) + square(b); +}; +</pre> + +<p dir="rtl"><strong>الدالة العوديّة</strong> (بالإنجليزيَّة: Recursive function) هي دالة تستدعي نفسها. طالع {{Glossary("Recursion", "المعاودة")}} للمزيد من التفاصيل.</p> + +<pre class="brush: js">function loop(x) { + if (x >= 10) + return; + loop(x + 1); +}; +//باستخدام الأسهم في إصدار ECMAScript 2015 +const loop = x => { + if (x >= 10) + return; + loop(x + 1); +}; +</pre> + +<p dir="rtl"><strong>التعبيرات الداليَّة المُستحضرة فوريًا</strong> (بالإنجليزيَّة: Immediately Invoked Function Expressions) هي دوال تُستدعى مباشرةً بعد أنْ تُحمَّل إلى {{glossary("Compiler", "مُصرِّف")}} المُتصفِّح. يُعرَّف هذا النوع من الدوال عبر إضافة قوسان: يساري ويميني إضافيان في نهاية تصريح الدالة (انظر أدناه).</p> + +<pre class="brush: js">// Error (https://en.wikipedia.org/wiki/Immediately-invoked_function_expression) +/* +function foo() { + console.log('Hello Foo'); +}(); +*/ + +(function foo() { + console.log("Hello Foo"); +}()); + +(function food() { + console.log("Hello Food"); +})(); + +</pre> + +<p dir="rtl">اقرأ <a href="https://en.wikipedia.org/wiki/Immediately-invoked_function_expression">هذه المقالة</a> في الموسوعة الحرَّة للمزيد عن هذا النوع من الدوال.</p> + +<h2 dir="rtl" id="المزيد_من_التفاصيل">المزيد من التفاصيل</h2> + +<h3 dir="rtl" id="مراجع_تقنيّة">مراجع تقنيّة</h3> + +<ul dir="rtl"> + <li><a href="/ar/docs/Web/JavaScript/Guide/Functions">توثيق الدوال</a> في شبكة مطوري موزيلا</li> + <li><a href="/ar/docs/Web/JavaScript/Guide/Functions">الدوال السهميّة</a></li> +</ul> |