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

ما هو الفرق بين proto وConstructor.prototype في JavaScript؟

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

What is the Difference Between proto and Constructor.prototype in JavaScript?

الاختلافات بين proto وconstructor.prototype

خاصية proto للكائن يشير إلى كائن النموذج الأولي الخاص به، والذي يحتوي على خصائص وأساليب مشتركة. في المقابل، يشير buildor.prototype إلى خاصية النموذج الأولي لوظيفة منشئ الكائن.

يوضح المثال التالي التمييز:

function Gadget(name, color) {
  this.name = name;
  this.color = color;
}

Gadget.prototype.rating = 3;

var newtoy = new Gadget("webcam", "black");

في هذه الحالة، يشير newtoy.__proto__ إلى Gadget.prototype، الذي يتمتع بتصنيف الخاصية، بينما يشير newtoy.constructor.prototype أيضًا إلى Gadget .النموذج الأولي. ومع ذلك، newtoy.constructor.prototype.constructor.prototype.constructor.prototype يُرجع قيمة فارغة لأنه لا يوجد نموذج أولي آخر يتجاوز Object.prototype.

وهذا لأن proto هو مرجع مباشر إلى كائن النموذج الأولي، بينما يتبع buildor.prototype سلسلة النموذج الأولي. عند الوصول إلى buildor.prototype عدة مرات، فإنك تجتاز سلسلة النموذج الأولي حتى تصل إلى المستوى الأعلى Object.prototype.

في Internet Explorer، لا توجد خاصية __proto__. بدلاً من ذلك، يمكنك استخدام السمة [[Prototype]] للوصول إلى النموذج الأولي للكائن. ومع ذلك، لا يمكن الوصول إلى هذه السمة في كود JavaScript القياسي.

يمكن أن تساعدك الإشارة إلى كائنات النموذج الأولي في فهم التسلسل الهرمي للميراث في JavaScript وتوفر آلية لمشاركة الخصائص والأساليب بين الكائنات ذات الصلة.

بيان الافراج أعيد طبع هذه المقالة على: 1729476318 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3