Existem vários modos em JS que podem criar objetos e operar as propriedades e métodos contidos no objeto.
De um modo geral, a primeira letra do nome do construtor é uma letra maiúscula, e a primeira letra do nome não construtor é uma letra minúscula. Obviamente, a única diferença entre um construtor e uma função geral é a diferença na maneira de chamar. Portanto, desde que qualquer função seja chamada através de novas, ela pode ser usada como construtor. Se não for chamado por meio de novo, é o mesmo que uma função geral.
Deixe -me falar sobre minha compreensão desses padrões:
Modo de fábrica: crie uma função geral, crie um objeto na função, adicione atributos e métodos ao objeto, atribua seu valor e finalmente retorne o objeto. O tipo de objeto não pode ser reconhecido.
Modo construtor: crie um construtor, use isso para atribuir valores e sempre que uma instância for criada, o método é criado uma vez e cada método executa o mesmo comando, que é redundante. Essa desvantagem pode ser feita colocando o método no ambiente global, mas dessa maneira não há encapsulamento. No entanto, ele pode ser resolvido através do modo de protótipo.
Padrão de protótipo: Cada função possui uma propriedade de protótipo, que é um ponteiro, apontando para um objeto que contém propriedades e métodos compartilhados por todas as instâncias criadas por sua função.
A relação entre protótipo objetos, construtores e instâncias é a seguinte:
Ilustração: 1: O construtor e as instâncias criadas pelo construtor, seus atributos de protótipo apontam para o objeto protótipo do construtor.
2: O objeto de protótipo do construtor possui o atributo construtor, que aponta para o construtor.
3: Todas as propriedades e métodos contidos no objeto protótipo do construtor podem ser compartilhados por todas as instâncias criadas pelo construtor.
Depois de reescrever o protótipo objeto usando o objeto literal, o construtor aponta para o construtor de objeto. Se for necessário apontar para outro construtor, você precisará modificar o valor do atributo construtor do objeto de protótipo, como: construtor: pessoa. Dessa forma, mesmo que o objeto de protótipo da pessoa seja reescrito, o construtor do objeto protótipo ainda aponta para o construtor da pessoa.
Ao criar uma instância primeiro: se você adicionar propriedades ou métodos diretamente, a instância poderá ser acessada.
Se o objeto de protótipo for reescrito, o protótipo do construtor apontará para o novo objeto de protótipo, enquanto o protótipo da instância criado anteriormente ainda aponta para o objeto protótipo original, a instância não pode acessar as novas propriedades ou novos métodos do novo objeto de protótipo.
O objeto de protótipo contém propriedades e métodos compartilhados; portanto, cada instância possui essas informações; portanto, não há diferença entre as instâncias e os parâmetros não podem ser passados, o que não é o que queremos. Cada instância possui informações comuns e informações diferentes, para que possamos usar uma combinação de modo construtor e modo de protótipo.
Use uma combinação de modo construtor e modo de protótipo:
Padrão de protótipo de estado: Combine construtores independentes com seus objetos de protótipo, inicialize o protótipo no construtor e adicione métodos a ele.
Se o método não existir, ele será adicionado ao objeto de protótipo e será executado apenas quando o protótipo é inicializado e apenas uma vez.
Modo de construtor parasitário: semelhante ao modo de fábrica, a diferença é: o modo de construtor parasitário é um construtor e as instâncias são criadas por meio de novas.
Padrão de construtor estável: não há propriedades públicas e seus métodos não se referem a esse objeto. Nenhum novo é usado ao criar uma instância. Somente o acesso a propriedades (ou seja, dados recebidos) é feito através de métodos.
A introdução acima de vários modos de objetos de criação de JavaScript é todo o conteúdo que eu compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.