Definición y uso
La propiedad del constructor devuelve una referencia a la función de matriz que creó este objeto.
gramática
Object.constructor
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.construcor); // 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 = age;} persona.prototype = {getName: function () {return this.name;}, getage: function () {return this.age;}} var p = nueva persona ("nicholas", 18); console.log (p.construcor); // 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;}}Lo anterior es el constructor en JavaScript presentado por el editor. ¡Espero que sea útil para todos!