"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل يؤدي تحديد الأساليب عبر المُنشئ في JavaScript إلى إنشاء نسخ دالة مكررة؟

هل يؤدي تحديد الأساليب عبر المُنشئ في JavaScript إلى إنشاء نسخ دالة مكررة؟

تم النشر بتاريخ 2024-11-14
تصفح:688

Does Defining Methods via Constructor in JavaScript Create Duplicate Function Copies?

الآثار المترتبة على الأداء لتحديد الطرق عبر النموذج الأولي مقابل المُنشئ في JavaScript

في JavaScript، يوجد طريقتان لإنشاء "فئات" ذات وظائف عامة: باستخدام النموذج الأولي أو المنشئ. تقوم الطريقة الأولى بتعيين وظائف للمثيلات من خلال المُنشئ، بينما تستخدم الطريقة الثانية النموذج الأولي لمشاركة الوظائف بين جميع المثيلات.

بينما يُزعم غالبًا أن الطريقة الثانية أكثر كفاءة، فإن حرمان المثيلات من متغيرات المثيلات الخاصة يعد عيبًا كبيرًا . ومع ذلك، هل يحدث إنشاء الطريقة الأولى الواضحة لنسخ دالة مكررة لكل مثيل بالفعل في الممارسة العملية؟

الأدلة التجريبية من JsPerf Benchmark

تشير معايير JsPerf إلى أن الطريقة الثانية (النموذج الأولي) ) يتفوق بالفعل على الطريقة الأولى (المنشئ) من حيث السرعة.

عملي الآثار

على الرغم من أن هذا الاختلاف واضح في المعايير، إلا أن أهميته في تطبيقات العالم الحقيقي أمر مشكوك فيه. حتى في السيناريوهات التي تحتوي على عدد كبير من عمليات إنشاء الكائنات (على سبيل المثال، 10000 لكل إطار)، من غير المرجح أن يؤدي هذا التحسين الجزئي إلى تخفيف اختناقات الأداء. يعد الأداء أمرًا بالغ الأهمية، ومن المستحسن الإعلان عن الأساليب عبر النموذج الأولي. بخلاف ذلك، توفر الطريقة الأولى مرونة أكبر وتلتزم باتفاقيات البرمجة الشيئية الشائعة. بالإضافة إلى ذلك، فإن استخدام الخصائص الخاصة التي يُشار إليها ببادئة الشرطة السفلية (على سبيل المثال، _process()) يعزز التغليف ولا يشجع التعديل المباشر.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3