Para entender melhor o contexto, vamos também aprender sobre classes, propriedades e métodos.
Classes e Objetos em JavaScript
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 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
gostei de ter aprendido o contúdo neste site. Valeu muita pena, pois, nunca tinha percebido a distinção de Classe, Objecto e Métodos em Java. Mais força em lutar para enlucidar alguma parte de nós!
ResponderExcluir