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

ما هو الفرق بين النموذج الأولي وconstructor.prototype؟

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

What\'s the Difference Between proto and constructor.prototype?

الفرق بين proto وconstructor.prototype

عند العمل مع كائنات JavaScript، يجب فهم الفرق بين ]proto وconstructor.prototype أمر بالغ الأهمية. بينما يشير proto إلى النموذج الأولي المباشر للكائن، يشير buildor.prototype إلى الكائن الذي تم إنشاء الوظيفة التي أنشأت الكائن منه. يمكن أن يؤدي هذا التمييز إلى نتائج مختلفة عند اجتياز سلاسل النماذج الأولية.

اجتياز سلسلة النماذج الأولية

كما هو موضح في الكود المقدم، يمكن استخدام proto لاجتياز سلسلة النموذج الأولي للكائن. في المثال، يتم استخدام proto لاجتياز سلسلة النموذج الأولي لـ newtoy، وهو مثيل لوظيفة Gadget. كل استدعاء لاحق لـ proto يصعد مستوى واحد في السلسلة، ويعود في النهاية خاليًا نظرًا لعدم وجود نموذج أولي يتجاوز Object.prototype.

ومع ذلك، إذا كان buildor.prototype.constructor.prototype.constructor.prototype يتم استخدامه، فإنه يصعد أيضًا إلى سلسلة النموذج الأولي ولكنه يُرجع في النهاية وظيفة الأداة الأولية، نظرًا لأنها تشير إلى النموذج الأولي الذي تم منشئ الأداة منه تم إنشاؤه.

التحقق من القيمة الخالية في Internet Explorer

في Internet Explorer، حيث لا تتوفر الخاصية proto، يمكن اجتياز سلسلة النموذج الأولي باستخدام getter النموذج الأولي على كائن الوظيفة. يوضح الكود أدناه كيفية التحقق من القيمة الخالية:

function checkNull(obj) {
  while (obj = obj.prototype) {
    // Check if the prototype is null
  }
}
بيان الافراج أعيد طبع هذه المقالة على: 1729476436 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3