في JavaScript ، يمكننا استخدام النماذج الأولية لتحقيق الميراث.
على سبيل المثال
الدالة baz () {this.oo = "" ؛} fOOD FOO () {} foo.prototype = new baz () ؛ var myfoo = new foo () ؛ myfoo.oo ؛وبهذه الطريقة يمكننا الوصول إلى السمة OO في BAZ. هذا غير ممكن في الاستخدام الفعلي ، بسبب خصائص مشاركة النموذج الأولي (يتم حفظ البيانات على الكومة) ،
تستخدم جميع الحالات نموذجًا أوليًا ، ولكن بمجرد أن تكون سمة BAZ لها نوع مرجعي ، ستكون مأساوية. إذا تم تعديل مثيل واحد ، فسيتغير المثيل الآخر أيضًا ... wuwuwu
سيكون هناك بشكل طبيعي ميراث مزيج
الدالة baz () {this.oo = "" ؛} baz.prototype.xx = function () {} fOOD () {baz.call (this) ؛ // call} foo.prototype = new baz () ؛سيكون هذا مشكلة ، ويظهر الرمز أيضًا أن BAZ سيسمى مرتين. كيف يمكن أن تسمح العذراء؟
إذا أضفت جملة ، فلن تحتاج الطريقة الثانية إلى مشكلة في الطريقة الأولى؟ الجواب لا.
والسبب هو أن البحث عن السمات يبدأ بالكائن نفسه. فقط عندما لا يتم العثور عليه ، سيتم العثور عليه في النموذج الأولي. عند الاتصال ، تراوحت السمات.
اسمحوا لي أن أضيف جملة أخرى ، فهل لن يكون ذلك كافياً لاستخدام ميراث المكالمات مثل هذا؟ هذا أمر ممكن إذا لم تستخدم نموذجًا أوليًا ، ولكن كيف لا يمكنك استخدام نموذج أولي كنوع عذراء؟
تتم مشاركة الطريقة على النموذج الأولي ، وبالتالي فإن الأداء سيكون أفضل بكثير.
الجمع الطفيلي الميراث
__exextends = function (p ، c) {function ctor () {this.constructor = c ؛ // constructor} ctor.prototype = p.prototype ؛ foo () {baz.call (this) ؛} var myfoo = new foo () ؛ myfoo.oo ؛ myfoo.xx ؛هذا لا يحل مشكلة مكالمتين فحسب ، بل يحل أيضًا المشكلة أنه عندما يستدعي الكائن المُنشئ ، يتم استدعاء الوظيفة الحقيقية التي تنشئ الكائن بدلاً من المُنشئين الآخرين على سلسلة النموذج الأولي.
هناك بيان في الكود.
المُنشئ هو سمة على كائن النموذج الأولي وهو منشئ الكائن. منذ إعادة تعيين سمات النموذج الأولي لدينا ، يتم توريث المنشئ.
هنا أريد أن أتحدث عن كيفية إنشاء الأشياء ، أي ما فعله الجديد.
على سبيل المثال:
var a = new b () ؛
في الواقع ، هو مثل هذا ، a = {} ؛ يخلق A لـ A ، ثم B.Call (A) ؛ تهيئة المكالمة أ. هناك خطوة أخرى قبل الاتصال ، وهي كائن النموذج الأولي الداخلي لـ A.
كائن النموذج الأولي الذي تم تعيين خاصية النموذج الأولي على النقاط B. هناك سمة مُنشئ على النموذج الأولي ، والذي يتم استخدامه لإنشاء عناصر تحكم في ذاكرة تخصيص الكائن.
من المحتمل أن يكون كل شيء ... لا يزال متأخرًا ، فلنكسره. حافظ على هدوء عقل ولا تكون صبرًا. اعمل بجد للتغيير غدًا ، وآمل أن يتحسن كل شيء تدريجياً.
ما سبق هو كل المحتوى الذي يجلبه لك المحرر حول الفهم الشامل للميراث (يجب القراءة) في JavaScript. آمل أن يدعم الجميع خطى المنزل أكثر.