Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

Classes, Objetos, Propriedades e Métodos em JavaScript

Neste tutorial, vamos dar uma introdução sobre o estudos dos objetos em JavaScript, um dos pilares da programação nesta linguagem.

Para entender melhor o contexto, vamos também aprender sobre classes, propriedades e métodos.

Classes e Objetos em JavaScript


Uma classe, em termos simples, nada mais é que um protótipo, um rascunho, um esboço de algo. Classes são 'não existem' no mundo real, digamos assim, são conceitos.

Por exemplo, carro é um conceito.
"Como assim, carro existe, é real, é um objeto de verdade..."

Você não vai em uma concessionária e:
- Olá, quero comprar um carro.
- Huum, ok! Um carro! Aqui está um carro!
- OK! Vou levar.
- Parabéns, agora você tem um carro.

Não! Você compra Corolla, Civic, Gol, Uno...
Todos são carros!

Todos tem uma 'base' em comum: tem motor, pneus, portas, câmbio...tem características em comum (propriedades e métodos), mas é algo mais abstrato, compreende?

Objeto não. Objeto é o objeto real mesmo, de verdade, que você vê, pega, anda...
Gol é carro.
Corolla é carro.

Embora tenham conceitos semelhantes, não são iguais.
Dizemos que Gol, Corolla, Uno...são instâncias da classe Carro, são objetos do tipo Carro.
Propriedades e Métodos em JavaScript

Propriedades de Objetos

Os objetos, todos ele, tem propriedades específicas.

Por exemplo, vamos criar o objeto corolla, criamos assim:
var corolla = new Carro();

Tem uma propriedade na classe Carro, que tem em todos os objetos desse tipo, é a motor.
Há Corollas com motor 2.0, então dizemos que:

corolla.motor = 2

Já do Gol:
gol.moto3 = 1

Pois os golzinhos geralmente são 1.0
Veja bem: todos Carros tem motor, mas alguns são 1.0 ... outros são 1.4, 1.5, 2.0 e por ai vai.
São propriedades específicas de cada um.

Por exemplo, todos tem porta! É uma propriedade que todo carro tem, mas que podem ter valores diferentes:
corolla.portas = 4
uno.portas = 2
veloster.portas = 3

Ou seja, propriedades são características, variáveis, com dados e informações sobre cada objeto, ok?

Métodos em Objetos

Além de conterem informações na forma de variáveis, os objetos também funções, que são chamadas de métodos.


Elas descrevem 'ações', coisas que um objeto pode fazer. São funções normais, a diferença é que elas são acessadas e existem somente a partir dos objetos.

Por exemplo, existe todo um mecanismo para dar a partida de um carro. Então, para darmos a partida num Corolla, fazemos:
corolla.partida() ;

Pronto, o código do método partida(), do objeto corolla, vai ser executado.
E para desligar nosso golzinho?

Só chamar o método desligar():
gol.desliga();

Todos objetos da classe Carro tem os métodos: partida(), desligar(), acelerar(), frear()...porém, eles só atuam e existem em objetos específicos. Você não freia 'um carro', você freia seu Civic, você acelera seu Celta, ok?

Objetos e Variáveis

Em JavaScript, praticamente tudo é um objeto. Já usamos vários objetos, métodos e propriedades (e ainda vamos usar mais), como parseInt(), alert(), Math.PI etc.

Números, booleanos e strings podem ser objetos, se usarmos new para criar um.
Caso contrário, são ditos tipos primitivos da linguagem.

A diferença primordial entre um objeto e um tipo primitivo (como números e booleanos), é que os tipos primitivos são imutáveis. Já objetos são mutáveis (não só podem mudar suas propriedades, como podem crescer e diminuir o número de informações dentro dele).

Por exemplo:
var x = 2112

Você pode até mudar o valor de x, mas jamais vai mudar o valor 2112.
Em objetos não, pode mudar sempre.

Além disso, um objeto pode ter várias e várias variáveis, propriedades e métodos dentro dele, enquanto uma variável contém apenas uma informação por vez (um número, uma string, um booleano etc).

Ao longo desta seção e da seção de orientação a objetos, você irá entender melhor o conceito de objetos e classes. Outros tipos importantes de objetos: Data, Array e até mesmo funções são objetos.

https://www.w3schools.com/js/js_object_definition.asp

Nenhum comentário:

Postar um comentário