O método construtor é muito útil, mas há um desperdício de memória
As funções atribuídas pelo protótipo são compartilhadas por todos os objetos.
Atributos atribuídos pelo protótipo são independentes .-----Se você não modificar os atributos, eles são compartilhados
Se queremos que todos os objetos usem a mesma função, é melhor adicionar funções usando o método do protótipo, que salva a memória.
exemplo:
// ---- Modo construtor
Adicione um atributo inalterado "Tipo" ao objeto CAT e adicione um método Eat (Eating Rat). Então, o protótipo de objeto Cat se torna o seguinte:
<Cript> function Cat (nome, cor) {this.name = name; this.color = cor; this.type = "feat"; this.eat = function () {alert ("coma mouse"); }; } // gerar exemplo: var cat1 = novo gato ("cabelos grandes", "amarelo"); var cat2 = novo gato ("coma er er", "preto"); alerta (cat1.type); // feat cat1.eat (); // coma alerta de mouse (cat1.eat == cat2.eat); // false </sCript>Ou seja, para cada objeto de instância, o atributo de tipo e o método Eat () são exatamente o mesmo conteúdo. Toda vez que uma instância é gerada, ela deve ser repetida e ocupar mais memória. Isso não é ambientalmente amigável nem eficiente.
// ---- Modo de protótipo
JavaScript estipula que cada construtor possui um atributo de protótipo apontando para outro objeto. Todas as propriedades e métodos desse objeto serão herdados por instâncias do construtor.
Isso significa que podemos definir diretamente essas propriedades e métodos inalterados no objeto de protótipo.
<Cript> function Cat (nome, cor) {this.name = name; this.color = cor; } Cat.prototype.type = "feminino"; cat.prototype.eat = function () {alert ("coma mouse")}; // gera uma instância. var cat1 = novo gato ("cabelos grandes", "amarelo"); var cat2 = novo gato ("2 cabelos", "preto"); alerta (cat1.type); // cat cat1.eat (); // alerta de mouse comer (cat1.eat == cat2.eat); // truef </sCript>No momento, os métodos de tipo de tipo de atributos e eat () de todas as instâncias são na verdade um endereço de memória, apontando para o objeto de protótipo, melhorando assim a eficiência da operação.
A introdução acima à diferença entre o construtor JS e o protótipo de protótipo é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.