Construtor, construtor, todos estamos familiarizados com esse nome. Construtor sempre aponta para o construtor que cria o objeto atual.
Uma coisa a observar aqui é que cada função possui uma propriedade de protótipo, e o construtor desse protótipo aponta para essa função. Neste momento, quando modificamos o protótipo dessa função, ocorreu um acidente. como
função pessoa (nome, idade) {this.name = name; this.age = idade;} pessoa.prototype.getage = function () {return this.age;} pessoa.prototype.getName = function () {return this.name;} var p = new Person ("nicholas", 18); console.log (p.constructor); // pessoa (nome, idade) console.log (p.getage ()); //18console.log (p.getName ()); // NicholasMas se sim:
função pessoa (nome, idade) {this.name = name; this.age = idade;} pessoa.prototype = {getName: function () {return this.name; }, getage: function () {return this.age; }} var p = nova pessoa ("nicholas", 18); console.log (p.constructor); // object () console.log (p.getage ()); //18console.log (p.getName ()); // NicholasComo resultado, o construtor mudou.
O motivo é que o próprio protótipo também é um objeto, e o código acima é equivalente a
PERSON.PROTOTYPE = novo objeto ({getName: function () {return this.name;}, getage: function () {return this.age;}});Como o construtor sempre aponta para o construtor que cria o objeto atual, não é difícil entender que o código acima p.Constructor gera um objeto.
O que devo fazer se o construtor depois de modificar o protótipo e ainda quiser apontar para a pessoa? Simples, basta atribuir valor a PERSON.Prototype.Constructor:
Person.prototype = {construtor: pessoa, getName: function () {return this.name; }, getage: function () {return this.age; }}A breve discussão acima sobre construtor no JavaScript é todo o conteúdo que compartilho com você. Espero que possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.