طريقة المنشئ مفيدة للغاية ، ولكن هناك مضيعة للذاكرة
تتم مشاركة الوظائف التي تم تعيينها بواسطة النموذج الأولي بواسطة جميع الكائنات.
السمات المعينة حسب النموذج الأولي مستقل .----- إذا لم تقم بتعديل السمات ، فهي مشتركة
إذا كنا نريد أن تستخدم جميع الكائنات نفس الوظيفة ، فمن الأفضل إضافة وظائف باستخدام طريقة النموذج الأولي ، الذي يحفظ الذاكرة.
مثال:
// ---- وضع المنشئ
أضف سمة غير متغيرة "type" إلى كائن CAT ، ثم أضف طريقة تناول الطعام (تناول الفئران). ثم ، يصبح قطة كائن النموذج الأولي ما يلي:
<script> function cat (name ، color) {this.name = name ؛ this.color = اللون ؛ this.type = "feat" ؛ this.eat = function () {Alert ("eat mouse") ؛ } ؛ } // إنشاء مثال: var cat1 = new cat ("Big Hair" ، "Yellow") ؛ var cat2 = new cat ("eat er hair" ، "black") ؛ ALERT (cat1.type) ؛ // feat cat1.eat () ؛ // Eat Mouse Alert (cat1.eat == cat2.eat) ؛ // false </script>وهذا هو ، لكل كائن مثيل ، سمة النوع وطريقة EAT () هي بالضبط نفس المحتوى. في كل مرة يتم فيها إنشاء مثيل ، يجب أن يكون محتوى متكرر ويشغل المزيد من الذاكرة. هذا ليس صديقًا للبيئة ولا فعال.
// ---- وضع النموذج الأولي
ينص JavaScript على أن كل مُنشئ لديه سمة نموذجية تشير إلى كائن آخر. سيتم ورث جميع خصائص وطرق هذا الكائن بواسطة مثيلات من المنشئ.
هذا يعني أنه يمكننا تحديد تلك الخصائص والأساليب التي لم تتغير مباشرة على كائن النموذج الأولي.
<script> function cat (name ، color) {this.name = name ؛ this.color = اللون ؛ } cat.prototype.type = "female" ؛ cat.prototype.eat = function () {Alert ("eat mouse")} ؛ // إنشاء مثيل. var cat1 = new cat ("Big Hair" ، "Yellow") ؛ var cat2 = new cat ("2 hair" ، "Black") ؛ Alert (cat1.type) ؛ // cat cat1.eat () ؛ // Eate Mouse Alert (cat1.eat == cat2.eat) ؛ // truef </script>في هذا الوقت ، يعتبر النوع الذي يعتبره أساليب الأنواع وطرق EAT () جميع الحالات في الواقع عنوانًا للذاكرة ، مشيرًا إلى كائن النموذج الأولي ، وبالتالي تحسين كفاءة التشغيل.
المقدمة أعلاه للفرق بين مُنشئ JS والنموذج الأولي هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.