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

أسباب ومزايا طريقة النموذج الأولي الذي يتم تعريفه خارج المنشئ

نشر في 2025-04-19
تصفح:578

Why Should Prototype Methods Be Defined Outside the Constructor Function?

this.category = فئة ؛ this.value = القيمة ؛ // المنتج هو كائن JSON filter.prototype.checkproduct = function (product) { // قم بتشغيل بعض الشيكات إرجاع is_match ؛ } } ؛

ومع ذلك ، فإن هذا النهج له عدة عيوب مقارنة بالهيكل البديل:

this.category = فئة ؛ this.value = القيمة ؛ } ؛ // var filter = function () {...} filter.prototype.checkproduct = function (product) { // قم بتشغيل بعض الشيكات إرجاع is_match ؛ }

var Filter = function( category, value ){
  this.category = category;
  this.value = value;

  // product is a JSON object
  Filter.prototype.checkProduct = function( product ){
    // run some checks
    return is_match;
  }
};

var Filter = function( category, value ){
  this.category = category;
  this.value = value;
};// var Filter = function(){...}

Filter.prototype.checkProduct = function( product ){
  // run some checks
  return is_match;
}
يمكن أن تؤدي متغيرات المنشئ من داخل طريقة النموذج الأولي إلى نتائج غير متوقعة. على سبيل المثال:

var counter = function (initialValue) { var value = initialValue ؛ // المنتج هو كائن JSON counter.prototype.get = function () { قيمة الإرجاع } } ؛ var c1 = عداد جديد (0) ؛ var c2 = عداد جديد (10) ؛ console.log (c1.get ()) ؛ // مخرجات 10 ، يجب إخراج 0

    في هذا السيناريو ، Get () إرجاع قيمة القيمة المتغيرة المحلية لـ C2 بدلاً من C1 لأن الطريقة تغلق مراجع القيمة الأكثر تحديدًا مؤخرًا على النموذج الأولي. مُنشئ:
  1. يحظر الهيكل الأول الوصول إلى النموذج الأولي خارج المنشئ ، وربما يحد من المرونة. الحالات. ينصح عمومًا بتعيين طرق النموذج الأولي خارج دالة المنشئ (كما في الهيكل الثاني) لتجنب المشكلات المحتملة.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3