لماذا لا يجب تعديل النموذج الأولي لكائن JavaScript

اكتشف لماذا لا يجب عليك تعديل النموذج الأولي لكائن JavaScript وماذا تفعل بدلاً من ذلك

بصفتنا مبرمجين ، فإن إحدى المهارات التي يجب أن نتعلمها أولاً هي كيفية البحث عن حل.

جوجل هو صديقك. وفي معظم الأوقات ، تكون إجابة StackOverflow التي تعود إلى عام 2009 هي الحل الأمثل لمشكلتك لعام 2019+.

في هذا الموقع المحدد ، أو في المدونات الشخصية ، أرى أحيانًا رمزًا يعدل نماذج الكائنات المضمنة.

كما في هذا المثال ، حيث تم تحسين النموذج الأولي لكائن Array عن طريق إضافة ملفinsertطريقة:

Array.prototype.insert = function(index, item) {
  this.splice(index, 0, item)
}

بهذه الطريقة ، يمكنك الحصول على أي مصفوفة وإدخال () استدعاء عليها:

['red', 'blue'].insert(0, 'yellow')

إنه سهل الاستخدام. بدلاً من الاضطرار إلى تحديد مثل هذه الوظيفة والقلق بشأن نطاقها ، يمكنك إرفاقها بكائن Array ، بحيث تتوفر كل مصفوفة.

لكن فقط لأنك أنتعلبة، هذا لا يعنيكينبغي.

ما الخطأ في هذا النهج؟

الصراعات المحتملة

افترض أن المكتبة التي تستخدمها تنفذ مثل هذا الشيء. ومكتبة أخرى تقوم باستيرادها تفعل الشيء نفسه. ربما تعمل الأساليب بشكل مختلف قليلاً ، ويبدو أن الأشياء تعمل بشكل جيد حتى لا تعمل.

لديك مشكلة كبيرة هنا ، لأنه لا يمكنك تعديل هذه المكتبات ولكنك لا تزال تريد استخدامها.

تدقيق الكود الخاص بك في المستقبل

افترض أن الإصدار التالي من JavaScript يقوم بتنفيذ ملفArray.insertطريقة. بتوقيع مختلف. الآن ماذا يحدث؟ عليك أن تعود وتعيد كتابة كل الكود الذي كتبته. ربما لعميل لم تعد تعمل لديه.

أو ربما فعلت ذلك في مكتبة يستخدمها أشخاص آخرون في مشاريعهم الخاصة. سيكون ذلك أسوأ.

هذا النهج يخلق فقط ديونًا تقنية ويدعو إلى حد كبير إلى مشاكل.

ماذا يجب أن تفعل بدلا من ذلك؟

قم بإنشاء دالة في ملف مكتبة واستوردها عندما تريد استخدامها. لا تقم بتعديل الكائنات التي ليس لديك سيطرة عليها.


المزيد من دروس js: