Emad Saif نشر 8 يونيو 2022 أرسل تقرير نشر 8 يونيو 2022 في بعض اللغات مثل Dart يمكن عمل أكثر من تابع باني constructor في نفس الصنف Class بحيث يتم تغير سلوك الكائن المنشأ من الصنف نوعًا ما عند إستعمال تابع باني مختلف. هل يمكن تطبيق نفس الفكرة في JavaScript بحيث يكون هناك أكثر من تابع باني في نفس الصنف؟ 1 اقتباس
1 عمر قره محمد نشر 8 يونيو 2022 أرسل تقرير نشر 8 يونيو 2022 الجافا سكريبت لا تدعم الـ function overloading أي أنه لا يمكن تعريف أكثر من وظيفة بنفس الاسم ولكن بـ parameters مختلفة وهذا يتضمن الـ constructor كذلك. ولكن يمكنك التغلب على هذه المشكلة بعدة طرق منها إنشاء وظائف static لبناء العناصر مثل التالي: class MyClass { constructor(a,b,c,d){ this.a = a this.b = b this.c = c this.d = d } static BAndCInstance(b,c){ return new MyClass(null,b,c) } static BAndDInstance(b,d){ return new MyClass(null,b, null,d) } } //Instance that has just a const myclass=new MyClass(a) //Instance that has b and c params const instanceWithBAndC = MyClass.BAndCInstance(b,c) //Instance that has b and d const instanceWithBAndD = MyClass.BAndDInstance(b,d) أو يمكنت التحقق من ال parameters من داخل الـ constructor و تعديل البيانات تبعاً لذلك: class MyClass { constructor(a,b){ if (a===undefined) a= 'how are you'; if (typeof(b)==='string') this._constructInSomeWay(a, b); } _constructInSomeWay(a,b){ console.log({a,b}) // do some thing } } ويمكن هنا إضافة العدد الذي تريده من الـ constructor حسب نوع المعلومات القادمة. اقرأ أيضاً : 1 اقتباس
السؤال
Emad Saif
في بعض اللغات مثل Dart يمكن عمل أكثر من تابع باني constructor في نفس الصنف Class بحيث يتم تغير سلوك الكائن المنشأ من الصنف نوعًا ما عند إستعمال تابع باني مختلف.
هل يمكن تطبيق نفس الفكرة في JavaScript بحيث يكون هناك أكثر من تابع باني في نفس الصنف؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.