Constructor, constructor, todos estamos familiarizados con este nombre. El constructor siempre apunta al constructor que crea el objeto actual.
Una cosa a tener en cuenta aquí es que cada función tiene una propiedad prototipo, y el constructor de este prototipo apunta a esta función. En este momento, cuando modificamos el prototipo de esta función, ocurrió un accidente. como
Función Persona (nombre, edad) {this.name = name; this.age = age;} persona.prototype.getage = function () {return this.age;} persona.prototype.getName = function () {return this.name;} var p = nueva persona ("nicholas", 18); console.log (p.constructor); // persona (nombre, edad) console.log (p.getage ()); //18console.log (p.getName ()); // nicholasPero si es así:
Función Persona (nombre, edad) {this.name = name; this.age = edad;} persona.prototype = {getName: function () {return this.name; }, getage: function () {return this.age; }} var p = nueva persona ("nicholas", 18); console.log (p.constructor); // objeto () console.log (p.getage ()); //18console.log (p.getName ()); // nicholasComo resultado, el constructor cambió.
La razón es que el prototipo en sí también es un objeto, y el código anterior es equivalente a
Persona.prototype = nuevo objeto ({getName: function () {return this.name;}, getage: function () {return this.age;}});Debido a que el constructor siempre apunta al constructor que crea el objeto actual, no es difícil entender que el código anterior p.constructor emite un objeto.
¿Qué debo hacer si el constructor después de modificar el prototipo y todavía quiere que señale a la persona? Simple, solo asigne valor a la persona.prototype.constructor:
Persona.prototype = {constructor: persona, getName: function () {return this.name; }, getage: function () {return this.age; }}La breve discusión anterior sobre Constructor en JavaScript es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.