اذهب إلى المحتوى

Emad Saif

الأعضاء
  • المساهمات

    205
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    1

كل منشورات العضو Emad Saif

  1. لدي مصفوفة تحتوي على عدد من أسماء المستخدمين، ويتم جلبهم من خلال عمل طلب GET إلى الخادم، بعد ذلك أقوم بالتعديل على هذه المصفوفة (حذف مستخدم، إضافة مستخدم جديد، أو إستبدال مستخدم بآخر)، الآن أريد أن يتم تنفيذ دالة معينة كلما تغير طول المصفوفة نفسها (عند حذف أو إضافة مستخدم جديد) بينما لا يتم تنفيذ الدالة إذا تم إستبدال أحد المستخدمين، لذلك حاولت إستخدام الخطاف useEffect على النحو التالي: useEffect(() => { console.log(usersArr) }, [usersArr]) لكن يبدو أن هذه الطريقة لا تعمل، حيث يتم تنفيذ الدالة عند حدوث أي تغير مهما كان على المصفوفة. هل توجد طريقة لكي أجعل الدالة تُنفذ في حالة تغير طول المصفوفة فقط؟
  2. لدي صنف يحتوي على أكثر من تابع وخاصية: class Foo { someFunc() { // ... } someFunc2() { // ... } someFunc3() { // ... } } كيف يمكنني الوصول إلى كل هذه التوابع في شكل حلقة For، بحيث يمكنني إستدعاء هذه التوابع أو طباعة أسمها؟
  3. وجدت في بعض المكتبات كود بسيط يكون فيه اسم التابع يبدأ بعلامة & : class MyClass { // ... public function &method_name(...) { // ^^ } // ... } ما فائدة إضافة علامة & هنا وفيما يتم إستخدامها؟
  4. لدي صنف class يحتوي على بعض التوابع methods، ولدي أيضًا دالة تُعيد اسم أحد هذه التوابع كـنص String، على النحو التالي: class Person { getAll() { // ... } } function methodName() { // ... return "getAll"; } const firstUser = new Person(); كيف يمكنني إستخدام ناتج الدالة methodName لإستدعاء تابع موجود في الصنف Person في JavaScript؟
  5. لغة JavaScript تدعم عمل أصناف مجهولة Anonymous classes بسهولة من خلال أستخدام الأقواس المعقوفة { } var obj = { name : "value", age : 123 }; alert(obj.name); فهل يمكن تطبيق نفس المبدأ في لغة PHP وعمل أصناف مجهولة Anonymous classes لإستخدامها مرة واحدة فقط عند الحاجة إليها؟
  6. كنت أقرأ عن التابع Object.defineProperty ووجدت جزء لم أفهمه، وهو أن هذا التابع يقوم بإضافة خاصية إلى الكائن Object ولكن هذه الخاصية تكون غير قابلةً للإحصاء non-enumerable property، بينما إستخدام الطرق العادية لإسناد خاصية إلى كائن ما تجعل الخاصية قابلةً للإحصاء enumerable properties var obj = {}; Object.defineProperty(obj, 'a', { value: 123 }); // خاصية غير قابلة للإحصاء obj.b = 4; // خاصية قابلة للإحصاء لأننا أنشأناها عبر // إسناد قيمة إلى خاصية مباشرةً ما الفرق بين الخصائص القابلةً للإحصاء enumerable properties والخصائص الغير قابلةً للإحصاء non-enumerable properties في JavaScript؟
  7. لدي واجهة تسمى IUser وأقوم بإستعمال هذه الواجهة في بعض الأصناف classes على النحو التالي: interface IUser { // ... } class MyClass implements IUser { // ... } الآن إذا قمت بعمل كائن Object من الصنف MyClass، فهل يمكنني التحقق من أن هذا الكائن يقوم بعمل implements للواجهة IUser؟ هل توجد دالة أو طريقة نقوم بهذا الأمر؟
  8. في بعض اللغات مثل Dart يمكن عمل أكثر من تابع باني constructor في نفس الصنف Class بحيث يتم تغير سلوك الكائن المنشأ من الصنف نوعًا ما عند إستعمال تابع باني مختلف. هل يمكن تطبيق نفس الفكرة في JavaScript بحيث يكون هناك أكثر من تابع باني في نفس الصنف؟
  9. في لغات البرمجة المعروفة يمكن عمل صنف مجرد abstract class بحيث يُستخدم في الوراثة ولا يمكن عمل نسخ جديدة منه instances، وحاولت أن أقوم بعمل صنف مجرد في JavaScript بأكثر من طريقة ولكن لم أنجح. هل تدعم لغة JavaScript عمل أصناف مجردة من الأساس أم لا؟
  10. بفرض أن لدي ثلاثة أصناف على النحو التالي: class A { // ... } class B { // ... } class C { // ... } هل يمكن عمل صنف جديد يقوم بوراثة كل التوابع الموجودة في هذه الأصناف معًا في PHP؟ أي عمل extends للأصناف A, B, C معًا لصنف جديد.
  11. بفرض أن لدي كائن object موجود في متغير على النحو التالي: var myObj = {a: 1, b: 2, c: 3}; var newObj = myObj; myObj.a = 0; console.log(myObj); // {a: 0, b: 2, c: 3} console.log(newObj); // {a: 0, b: 2, c: 3} كما هو واضح من الكود السابق، فإن أي تغير يحدث على الكائن myObj يحدث أيضًا على الكائن newObj. كيف أقوم بنسخ الكائن myObj بالكامل إلى المتغير newObj بحيث يكون منفصل عنه تمامًا؟
  12. لدي صنفين MyClassA وMyClassB وأقوم بعمل كائن جديد من كلٍ منهما، على النحو التالي: <?php class MyClassA { public $a = "a"; public $b = "b"; } class MyClassB { public $c = "c"; public $d = "d"; } $obj1 = new MyClassA(); $obj2 = new MyClassB(); echo $obj1->a; echo $obj1->b; echo $obj2->c; echo $obj2->d; هل توجد طريقة لدمج الكائن obj1 وobj2 معًا في كائن واحد جديد وليكن باسم newObj؟ بحيث يمكن إستخدامه كما يلي: <?php echo $newObj->a; echo $newObj->b; echo $newObj->c; echo $newObj->d; كيف أقوم بدمج الكائنين معًا في PHP؟
  13. لدي صنفين، وأحدهما يرث من الآخر على النحو التالي: class User { showAll() { // ... } } class Admin extends User { showAll() { // كيفية إستدعاء التابع showAll الموجود في الصنف User } } كما هو واضح في الكود السابق، يوجد صنف User ويحتوي على التابع الساكن showAll ، ولدي أيضًا الصنف Admin والذي يرث من الصنف User ويقوم بعمل override للتابع showAll. الآن أريد أن يتم إستدعاء التابع showAll الموجود في الصنف User من داخل التابع showAll الموجود في الصنف Admin، كيف أقوم بذلك؟
  14. أجد في بعض المكتبات أنه يمكن إستدعاء أكثر من تابع بشكل متتالي، بحيث يتنهي التابع الأول من التنفيذ ويبدأ التابع الثاني بشكل مباشر بدون الحاجة إلى الإضافة إلى الكائن Object في كل مرة : $obj = new ObjectWithMethods(); $obj->doSomething()->doSomethingElse(); كيف يمكن إضافة مثل هذه الميزة إلى صنف Class في PHP؟
  15. في جافاسكريبت يمكن إضافة تابع إلى كائن من خلال this على النحو التالي: function User () { this.save = function () { //do something }; }; أو إستخدام prototype للحصول على نفس النتيجة: function User () { }; User.prototype.save = function () { //do something }; هل يوجد فرق بين الطريقتين السابقتين؟
  16. لدي نص مُخزن في كائن Object بالشكل التالي: $obj->property_name = 'content'; الكائن obj$ يحتوي على خاصية باسم content على سبيل المثال (نفس قيمة الخاصية property_name في المثال السابق) كيف يمكنني إستخدام نص string كاسم خاصية للوصول إليها، حاولت إستخدام الكود التالي، ولكن لم أنجح: <?php class MyObject { public $content = "hello"; } $obj = new MyObject(); $obj->property_name = 'content'; // كيف يمكن الوصول إلى الخاصية content من خلال هذا النص $result = $obj->property_name; echo $result; // أريد أـن يتم طباعة hello
  17. في لغات البرمجة نحتاج في بعض الأحيان إلى إستخدام واجهة interface مثل الموجود في PHP أو Java، أعلم أن JavaScript لديها أصناف Class ولكن عندما حاولت البحث عن الوجهات في جافاسكريبت أو عن كيفية تطبيق هذا الأمر في جافاسكريبت لم أوفق. كيف يمكن تطبيق مبدأ الواجهات interfaces في جافاسكريبت JavaScript؟
  18. في لغات مثل PHP و ++C و Java يمكن عمل توابع خاصة private أو توابع محمية protected في أي صنف، حاول أن أقوم بعمل مثل هذه التوابع في جافاسكريبت JavaScript ولكن لم أنجح. هل توجد طريقة لعمل مثل هذه التوابع في جافاسكريبت أم أن اللغة نفسها لا تدعم مثل هذه المميزات؟
  19. يمكن إضافة توابع إلى أي صنف من خلال الطرق التالية: class User {} User.sayHi = function () { /* ... */ } User.prototype.sayHi = function () { /* ... */ } هل يوجد أي إختلاف بين تلك الطرق أم أنها مجرد إختصار للأكواد؟
  20. يمكننا عمل كائنات Objects من صنف Class معين عبر الكلمة المفتاحية new في جافاسكريبت: class User { // ... } const user1 = new User(); الآن أريد عمل شرط للتأكد من أن المتغير user1 عبارة عن نسخة instance من الصنف User، كيف أقوم بهذا الأمر؟
  21. تعلمت مؤخرًا عن توابع getter و setter وكيفية عملها في عدة لغات مثل JavaScript وغيرها، لكن حاولت أن أقوم بعمل هذا النوع من التوابع في PHP ولم أنجح كيفية إضافة توابع getters و setters في صنف Class بلغة PHP؟
  22. لدي ثلاثة أصناف Classes وكلُ منهم يحتوي على تابع باني constructor على النحو التالي: class GrandFather { public function __construct() { // .. } } class Father extends GrandFather { public function __construct() { // call GrandFather's constructor parent::__construct(); } } class Son extends Father { public function __construct() { // أريد إستدعاء التابع الباني الخاص بالصنف GrandFather هنا // بدون تشغيل التابع الباني الخاص بالصنف Father } } أريد إستدعاء التابع الباني الخاص بالصنف GrandFather من داخل الصنف Son، ولكن بدون تشغيل التابع الباني الخاص بالصنف Father هل هناك طريقة للقيام بهذا الأمر؟
  23. عندما أقرأ عن البرمجة الكائنية في لغة JavaScript أجد في كثير من الأحيان مصطلحي getter و setter ، ولكن لم أفهم ما هما بالضبط، وفيما يتم إستعمالهما. أعلم أنهما عبارة عن توابع Methods في الأصناف Classes ولكن لا أعرف كيف يتم كتابتهما أو الفائدة منهما؟
  24. قرأت كثيرًا عن بنية MVC المستعملة في كثير من إطارات العمل Frameworks مثل لارافيل Laravel وسيمفوني symfony وغيرها، وأريد الآن أن أقوم بمحاولة تطبيق هذه البنية. كيف أقوم بعمل صنف Class يكون عبارة عن نموذج Model يتعامل مع البيانات الموجودة في قاعدة البيانات بإستخدام PHP فقط؟
  25. سمعت منذ فترة عن SOLID وعندما بحثت عنها وجدت أنها تُستخدم لجعل الكود أفضل. ما هي مبادئ SOLID بالضبط، وفي ماذا تُتسعمل؟ وهل يجب أن أستخدمها في كل مشروع أقوم به؟
×
×
  • أضف...