تحتوي كل وظيفة JavaScript على سمة نموذج أولي (لا يحتوي كائن JavaScript على هذه السمة). تشير هذه السمة إلى كائن ، وهو كائن النموذج الأولي. يتيح لنا JavaScript تعديل كائن النموذج الأولي هذا.
هناك طريقتان للتعديل:
الطريقة 1: إضافة خصائص أو طرق إلى كائن النموذج الأولي الأصلي
وظيفة person () {} person.prototype.add = function () {Alert (this.name) ؛} ؛ person.prototype.name = "aty" ؛ var p1 = new person () ؛ p1.add () ؛ // atyالطريقة 2: إعادة كتابة (الكتابة فوق) كائن النموذج الأولي
وظيفة person () {} person.prototype = {add: function () {Alert (this.name) ؛} ، الاسم: "aty"يمكنك أن ترى أن الطريقتين أعلاه يمكن أن تعدل النموذج الأولي ، فما هو الفرق؟ ما هي الطريقة هي الطريقة الموصى بها؟
وظيفة person () {} وظيفة animal () {} var person = new person () ؛ var animal = new animal () ؛ // تعديل النموذج الأولي person.prototype. شخصيا.إذا قمت بإنشاء كائن أولاً ثم قم بتعديل النموذج الأولي ، فإذا كنت تستخدم الطريقة 1 ، فيمكن للكائن الذي قمت بإنشائه الوصول إلى النموذج الأولي المعدل بشكل صحيح ؛ إذا كنت تستخدم الطريقة 2 ، فإن الكائن الذي قمت بإنشائه لا يمكنه الوصول إلى النموذج الأولي المعدل. من هذا المنظور ، من الواضح أن الطريقة 1 أفضل من الطريقة 2. لماذا يحدث هذا؟
وظيفة person () {} وظيفة animal () {} var person = new person () ؛ var animal = new Animal () ؛ Alert (الشخص .__ proto__ === person.prototype) ؛ // truealert (Animal .__ proto__ === Animal.prototype) ؛ animal.prototype = {say: function () {Alert ("person") ؛}} ALERT (prof.من الواضح أن هذا يشبه إلى حد كبير "تعديل المرجع" و "تعديل الكائن المشار إليه بالرجوع إليه" في Java ، والتأثير هو نفسه.
التفسير التفصيلي أعلاه للفرق بين التعديل وإعادة كتابة (الكتابة فوق) من النموذج الأولي JavaScript هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.