الفرق بين 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 } }
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3