التعريف والاستخدام
تُرجع خاصية المنشئ إشارة إلى وظيفة الصفيف التي أنشأت هذا الكائن.
قواعد
Object.constructor
مُنشئ ، مُنشئ ، نحن جميعًا على دراية بهذا الاسم. يشير المنشئ دائمًا إلى المُنشئ الذي ينشئ الكائن الحالي.
شيء واحد يجب ملاحظته هنا هو أن كل وظيفة لديها خاصية النموذج الأولي ، وأن مُنشئ هذا النموذج الأولي يشير إلى هذه الوظيفة. في هذا الوقت ، عندما نقوم بتعديل النموذج الأولي لهذه الوظيفة ، وقع حادث. يحب
وظيفة الشخص (الاسم ، العمر) {this.name = name ؛ this.age = age ؛} person.prototype.getage = function () {return this.age ؛ // person (name ، Age) console.log (p.getage ()) ؛ //18console.log (p.getName ()) ؛ // نيكولاسولكن إذا كان الأمر كذلك:
وظيفة الوظيفة (الاسم ، العمر) {this.name = name ؛ this.age = Age ؛} person.prototype = {getName: function () {return this.name ؛ // object () console.log (p.getage ()) ؛ //18console.log (p.getName ()) ؛ // نيكولاسنتيجة لذلك ، تغير المنشئ.
والسبب هو أن النموذج الأولي نفسه هو أيضًا كائن ، والرمز أعلاه يعادل
person.prototype = كائن جديد ({getName: function () {return this.name ؛} ، getage: function () {return this.age ؛}}) ؛نظرًا لأن المنشئ يشير دائمًا إلى المُنشئ الذي ينشئ الكائن الحالي ، فليس من الصعب فهم أن الكود P.Constructor أعلاه يخرج كائن.
ماذا علي أن أفعل إذا كان المنشئ بعد تعديل النموذج الأولي وما زال يريده أن يشير إلى شخص؟ بسيط ، فقط تعيين قيمة إلى person.prototype.constructor:
person.prototype = {constructor: person ، getName: function () {return this.name ؛} ، getage: function () {return this.age ؛}}ما سبق هو المُنشئ في JavaScript الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا للجميع!