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 doPerson
classe 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
class
palavras-chave declara uma nova classe. - a
class
declaration is syntactic sugar over prototypal inheritance with additional enhancements.
- este tutorial foi útil ?
- YesNo
Leave a Reply