Roog Roog نشر 3 سبتمبر 2023 أرسل تقرير نشر 3 سبتمبر 2023 (معدل) function multiplier(factor) { return number => number * factor; } let twice = multiplier(2); console.log(twice(5)); // 10 ممكن شرح كيف العدد ٥ اخد مطرح number وعلى اساسا جرت عملية الضرب والناتج صار ١٠ . شكرا مسبقا . تم التعديل في 3 سبتمبر 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 عبدالباسط ابراهيم نشر 3 سبتمبر 2023 أرسل تقرير نشر 3 سبتمبر 2023 الدالة `multiplier` هي دالة عالية الرتبة (higher-order function) في JavaScript. تستقبل هذه الدالة عامل (factor)وتُرجع دالة جديدة. let twice = multiplier(2); عند استدعاء `multiplier(2)`، يتم تمرير العامل 2 إلى الدالة وتُرجع دالة جديدة. تلك الدالة الجديدة تسمى `twice` في هذا السياق. عند استدعاء `twice(5)`، يتم تمرير العدد 5 إلى الدالة `twice`. وفقًا للدالة `multiplier` التي تم استخدامها لإنشاء `twice`، فإن الدالة `twice` تقوم بضرب العدد الممرر إليها (العدد 5 في هذه الحالة) بالعامل الذي تم تمريره لـ `multiplier` (العامل 2 في هذه الحالة). بالتالي، يتم تنفيذ العبارة `number => number * factor` في `twice`، حيث يُقدر العدد الممرر إليها (5) ضمن المعامل `number`، ويتم ضربه بالعامل (2)، وبالتالي يتم إرجاع الناتج النهائي الذي هو 10. باختصار، الدالة `twice` التي تم إنشاؤها باستخدام `multiplier(2)` تأخذ عددًا وتقوم بضربه بالعدد 2، وتُرجع الناتج. في هذه الحالة، `twice(5)` يعود بقيمة 10. وللمزيد حول الدوال العليا يفضل قراءة المقالة التالية 1 اقتباس
0 Roog Roog نشر 3 سبتمبر 2023 الكاتب أرسل تقرير نشر 3 سبتمبر 2023 بتاريخ 26 دقائق مضت قال عبدالباسط ابراهيم: الدالة `multiplier` هي دالة عالية الرتبة (higher-order function) في JavaScript. تستقبل هذه الدالة عامل (factor)وتُرجع دالة جديدة. let twice = multiplier(2); عند استدعاء `multiplier(2)`، يتم تمرير العامل 2 إلى الدالة وتُرجع دالة جديدة. تلك الدالة الجديدة تسمى `twice` في هذا السياق. عند استدعاء `twice(5)`، يتم تمرير العدد 5 إلى الدالة `twice`. وفقًا للدالة `multiplier` التي تم استخدامها لإنشاء `twice`، فإن الدالة `twice` تقوم بضرب العدد الممرر إليها (العدد 5 في هذه الحالة) بالعامل الذي تم تمريره لـ `multiplier` (العامل 2 في هذه الحالة). بالتالي، يتم تنفيذ العبارة `number => number * factor` في `twice`، حيث يُقدر العدد الممرر إليها (5) ضمن المعامل `number`، ويتم ضربه بالعامل (2)، وبالتالي يتم إرجاع الناتج النهائي الذي هو 10. باختصار، الدالة `twice` التي تم إنشاؤها باستخدام `multiplier(2)` تأخذ عددًا وتقوم بضربه بالعدد 2، وتُرجع الناتج. في هذه الحالة، `twice(5)` يعود بقيمة 10. وللمزيد حول الدوال العليا يفضل قراءة المقالة التالية function multiplier(2) { return twice(5) => 5 * 2; } هيك بتقصد ؟ بتاريخ 9 دقائق مضت قال Roog Roog: function multiplier(2) { return twice(5) => 5 * 2; } هيك بتقصد ؟ ممكن كتابة الدالة twice(5) وطريقة عملا ، يعني ما يجري خلف الكواليس ، بعد اضافة التابع والعدد للدالة ، وشكرا . انا بصراحة ما عم افهم كيف العدد خمسة بالدالة twice(5) اخد مطرح number بالدالة المعادة في دالة multiplier (factor). شكرا 1 اقتباس
0 Mustafa Suleiman نشر 3 سبتمبر 2023 أرسل تقرير نشر 3 سبتمبر 2023 بتاريخ 34 دقائق مضت قال Roog Roog: function multiplier(2) { return twice(5) => 5 * 2; } هيك بتقصد ؟ ممكن كتابة الدالة twice(5) وطريقة عملا ، يعني ما يجري خلف الكواليس ، بعد اضافة التابع والعدد للدالة ، وشكرا . انا بصراحة ما عم افهم كيف العدد خمسة بالدالة twice(5) اخد مطرح number بالدالة المعادة في دالة multiplier (factor). شكرا الكود يعتمد على ميزة في جافاسكريبت تسمى إغلاق (Closure) والتي تسمح لدوال داخلية بالوصول إلى المتغيرات الخارجية من الدالة التي تم إنشاؤها. تم إنشاء دالة multiplier التي تستقبل معامل (factor)، وتلك هذه الدالة تُعيد دالة أخرى (دالة مجهولة) تقوم بضرب العدد الذي تم تمريره إليها بالعامل (factor). ثم تم تعريف متغير twice وتعيينه بنتيجة استدعاء دالة multiplier مع المعامل 2، مما يعني أن twice سيحتوي على الدالة الناتجة من استدعاء multiplier(2). هنا الكود يصبح كالتالي: function multiplier(factor) { return number => number * factor; } let twice = multiplier(2); console.log(twice); // number => number * factor لاحظ عند طباعة المتغير أعاد إلينا دالة. وعندما نقوم بكتابة twice(5)، نقوم باستدعاء الدالة الناتجة من multiplier(2) مع العدد 5 كمدخل، وبالتالي factor سيكون 2 (لأنه تم تمريره عند إنشاء twice)، وnumber سيكون 5 (لأنه تم تمريره عند استدعاء twice(5)). الدالة الداخلية ستقوم بضرب number (الذي هو 5) في factor (الذي هو 2)، مما ينتج عنه القيمة 10. القيمة المُرجعة من twice(5) هي 10، وهذا هو السبب في أن console.log(twice(5)) يعرض 10 في الإخراج. أي أن الدالة multiplier تُنشئ وتُعيد دالة جديدة تأخذ عامل وتستخدمه للضرب في الأرقام الأخرى عند استدعاءها، الأمر الذي يسمح لك بإنشاء دوال مخصصة تستند إلى دوال أخرى وتحمل فيها معاملات محددة مسبقًا. 1 اقتباس
السؤال
Roog Roog
ممكن شرح كيف العدد ٥ اخد مطرح number وعلى اساسا جرت عملية الضرب والناتج صار ١٠ .
شكرا مسبقا .
تم التعديل في بواسطة Mustafa Suleimanتعديل عنوان السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.