uma classe JavaScript é uma planta para a criação de objetos. Uma classe encapsula dados e funções que manipulam os dados.ao contrário de outras linguagens de programação como Java e C++, classes JavaScript são açúcar sintático sobre a herança prototípica. Em outras palavras, classes ES6 são apenas funções especiais.
Classes anteriores a ES6 revisitado
Antes de ES6, JavaScript não tinha conceitos de classes., Para imitar uma classe, muitas vezes usamos uma função de construtor como mostrado no seguinte exemplo:
saída:
como funciona.
primeiro, crie o id
como uma função construtora que tem um nome de propriedade chamado name. getName() função é atribuída prototype de modo que ele pode ser compartilhado por todas as instâncias de Person tipo.
então, crie uma nova instância doPerson tipo usando onew operador., The john object, hence, is an instance of thePerson andObject through prototypal inheritance.,
as instruções A seguir usam o instanceof operador verifique se john é um exemplo de Person e Object digite:
Code language: JavaScript (javascript)
ES6 declaração de classe
ES6 introduziu uma nova sintaxe para declarar uma classe como mostrado neste exemplo:
Code language: JavaScript (javascript)
Este Person classe se comporta como o Person tipo no exemplo anterior. No entanto, em vez de usar uma função de construtor, ele usa a palavra-chave class.,
In The Person class, theconstructor() is where you can initialize the properties of an instance. JavaScript automaticamente chama o método constructor() quando você instancia um objeto da classe.
A seguir cria um novo Person objeto, que será automaticamente chamada de constructor() de Person classe:
Code language: JavaScript (javascript)
getName() é chamado um método de Person classe., Como um construtor de função, você pode chamar os métodos de uma classe usando a seguinte sintaxe:
Code language: CSS (css)
Por exemplo:
Code language: JavaScript (javascript)
Para verificar o fato de que as classes são funções especiais, você pode usar o typeof operador de verificar o tipo de Person classe.
Code language: JavaScript (javascript)
devolve function conforme esperado.,
john objeto é também uma instância de Person e Object tipos:
Code language: JavaScript (javascript)
Classe versus tipo Personalizado
Apesar das semelhanças entre uma classe e um tipo personalizado definida através de uma função de construtor, existem algumas diferenças importantes.em primeiro lugar, as declarações de classe não são içadas como declarações de função.
Por exemplo, se colocar o seguinte código acima doPersonclasse declaration section, irá obter umReferenceError.,
Code language: JavaScript (javascript)
Error:
Code language: JavaScript (javascript)
Second, all the code inside a class automatically executes in the strict mode. E não podes mudar este comportamento.
Terceiro, Os Métodos de classe são não enumeráveis. Se você usar uma função de construtor, você tem que usar o método Object.defineProperty() para fazer uma propriedade não enumerável.
ourth, calling the class constructor without the new operator will result in an error as shown in the following example.,
Code language: JavaScript (javascript)
Erro:
Code language: JavaScript (javascript)
Resumo
- o Uso de JavaScript
classpalavras-chave declara uma nova classe. - a
classdeclaration is syntactic sugar over prototypal inheritance with additional enhancements.
- este tutorial foi útil ?
- YesNo
Leave a Reply