Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com
Mostrando postagens com marcador Método. Mostrar todas as postagens
Mostrando postagens com marcador Método. Mostrar todas as postagens

Como declarar Objetos, Criar Propriedades e Métodos em JavaScript

Agora que já aprendemos o que são objetos, chegou a hora de aprendermos como criar um, como inserir propriedades e métodos, bem como acessá-los, em objetos na linguagem JavaScript.

Como declarar e Criar um Objeto em JavaScript


A maneira mais simples, rápida e fácil de criar um objeto, é fazer simplesmente:
var myObj = {};

Prontinho.
Colocamos as propriedades e métodos de um objeto entre chaves. Nesse caso, temos um objeto de nome myObj, que é vazio.

Uma outra maneira de criar um objeto vazio, é instanciando da classe Object, com o comando new:
var myObj = new Object();

Se usarmos o operador typeof, que diz que tipo de dado é aquele objeto:
function obj()
{
 var myObj = new Object();
 alert(typeof myObj);
}

Ele vai retornar:
Como declarar um objeto em JavaScript

Como Adicionar e Acessar propriedades em um Objeto

Ok, vimos como criar ou instanciar nosso objeto, porém não é muito útil um objeto assim vazio, sem informação nenhuma.

Vamos agora criar o objeto meuCarro.
Depois, vamos adicionar a propriedade modelo com uma string. Fazemos isso simplesmente escrevendo um ponto após o nome do objeto seguido do nome da propriedade, então fazemos tudo isso receber um valor, no caso, uma string:


function obj()
{
 var meuCarro = new Object();
 meuCarro.marca="Corolla";

 alert("Marca do carro: "+meuCarro.marca);
}

Para acessar, basta usar: meuCarro.modelo
Tem uma string dentro dessa propriedade, ou seja, é uma variável interna do objeto, que armazena uma string, que exibimos em um alert:

Como adicionar uma propriedade num objeto

Como criar um método num Objeto

Por fim, vamos aprender como criar um método dentro de um objeto.
Lembrando que um método nada mais é que uma função.

Vamos chamar de ligar() o nome do nosso método.
Basta fazer:
var nomeDoMetodo = function(){
   [código do método]
}



Por exemplo, o método ligar exibe um alert:
function obj()
{
 var meuCarro = new Object();
 meuCarro.marca="Corolla";
 meuCarro.ligar = function(){
  alert("Ligando o carro...Vruuuum!");
 }

 meuCarro.ligar();
}

Para acessar um método, basta escrever o nome do objeto, um ponto, nome do método e o par de parêntesis, como se fosse uma função (método são funções!).

Quando rodamos nosso script:
Método de um objeto em linguagem JavaScript

Criando Objetos com chave:valor

Uma maneira bem mais comum e fácil de se trabalhar com objetos, é declarando eles, suas propriedades e métodos com pares chave/valor (key/value).

Funciona mais ou menos assim:
var meuObjeto = {
  chave1 : valor1,
  chave2 : valor2,
  chave3 : valor3
}

Por exemplo, vamos criar o objeto meuCarro com nome do modelo, ano de fabricação e um método que exibe as propriedades anteriores num alert:
function obj()
{
 var meuCarro = {
  modelo : "Corolla",
  ano    :  2018,
  exibeInfo : function(){
   alert("Meu carro é modelo " + this.modelo + " e ano " + this.ano);
  }
 }
 meuCarro.exibeInfo();
}

O resultado ao invocar meuCarro.exibeInfo():
Apostila de JavaScript grátis para download
Note que, para usarmos propriedades internas de um objeto, usamos o comando this. antes do nome da propriedade, isso serve para sinalizar que estamos querendo acessar a variável interna do objeto!

Se já estudou outra linguagem de programação, objetos nesta forma são semelhantes aos:

  • Arrays associativos PHP
  • Dicionários em Python
  • Hash table em C
  • Hash maps em Java
  • Hashes em Ruby e no Perl


Como Deletar Propriedades

Ok, já vimos como é simples criar objetos com propriedades ou ir criando propriedades depois.
Mas, como dissemos, os objetos são mutáveis, podem mudar, seja pra crescer seja pra diminuir.

O comando delete serve para excluir uma propriedade. Para deletar a propriedade modelo, basta fazer:
delete meuCarro.modelo

E prontinho, já era a informação de modelo do seu carro.

Mais fonte de estudo:
https://www.dofactory.com/tutorial/javascript-objects
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Trabalhando_com_Objetos

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

Como fazer busca em Array - Métodos indexOf e lastIndexOf

Neste tutorial de JavaScript, vamos aprender como localizar qualquer elemento de um array através dos métodos indexOf e lastIndexOf.

Como Achar Elementos de um Array

Tão importante quanto ordenar os elementos de um array, é fazer uma busca nele.

Imagine um site grande de e-commerce, como Extra ou Americanas.

Na seção de notebooks existem simplesmente centenas de marcas e modelos de máquina.

Imagina olhar um por um pra achar algum com aquela característica específica que você deseja? Não dá, o array com todo os produtos é gigantesco.

Então, uma ferramenta de busca é feita para você definir o que deseja (i7, 8 GB de RAM, HD de 2 TB etc), facilitando muito sua vida.

O processo de busca é chamado de searching, derivado da palavra search, que significa buscar, achar, localizar ou encontrar, e é isso que vamos aprender agora com dois métodos especiais.

Como Buscar um Elemento em Arrays: Método indexOf

Todo objeto do tipo Array possui um método próprio, nativo, o indexOf.

Para usá-lo, basta colocar um ponto após o nome do array, escrever indexOf e passar como argumento o elemento que você deseja buscar.

Por exemplo, se quisermos encontrar o número 10 em um array chamado vetor:
vetor.indexOf(10);

Se este elemento existir, esse método retorna o índice da primeira localização dele.
Se não existir, retorna -1.

Exemplo de uso do indexOf

No exemplo abaixo, criamos um array bem grande, de 20 elementos:
var vetor = [10, 2, 5, 4, 3, 1, 11, 99, 76, 54, 23, 29, 49, 86, 66, 55, 44, 33, 22, 88];

Exibimos esse vetor, então perguntamos ao usuário que número ele deseja localizar.
Ao apertar o botão Buscar, a função main() é acionada.

A main pega o número digitado e passa para função search, junto com o vetor.
Dentro dessa função, buscamos o número digitado através do método indexOf.

Se ele retornar algum índice maior ou igual a 0, é porque tal número existe no array e dissemos sua localização. Caso contrário, retornamos uma mensagem de índice inexistente.

Código HTML:

<!DOCTYPE html>
<meta charset="UTF-8">
<html>
 <head>
    <title>Apostila JavaScript Progressivo</title>
    <script type="text/javascript" src="script.js"></script>
 </head>
 <body >
  Vetor: <div id='vetor'></div><br />
  Numero a ser localizado: <input id="num" type="number"> <br />
  <button onclick="main()">Buscar</button><br />
  Resposta: <div id='resposta'></div>
 </body>
</html>


script.js:


function main()
{
 var vetor = [10, 2, 5, 4, 3, 1, 11, 99, 76, 54, 23, 29, 49, 86, 66, 55, 44, 33, 22, 88];
 var num = parseInt(document.getElementById("num").value);
 var resposta = document.getElementById('resposta');
 var vet = document.getElementById('vetor');

 vet.innerHTML = vetor;
 resposta.innerHTML = search(vetor,num)

}

function search (vetor, elemento)
{
 if(vetor.indexOf(elemento)>=0)
  return "Está no índice "+vetor.indexOf(elemento);
 else
  return "Não está no array"
}


Resultado:

Vetor:

Numero a ser localizado:

Resposta:



Como achar o último Índice - lastIndexOf

Você parou pra pensar: e se tiver o mesmo número, várias vezes, em vários índices?
O método indexOf só retorna o primeiro.

Ele encontra o primeiro e pronto, fecha, acaba.

Existe uma outra função, chamada lastIndexOf que faz o contrário, encontra o último.
Vamos colocar o número 10 ao fim do array.

Nosso código JS que detecta a última aparição do número fica:
function main()
{
 var vetor = [10, 2, 5, 4, 3, 1, 11, 99, 76, 54, 23, 29, 49, 86, 66, 55, 44, 33, 22, 10];
 var num = parseInt(document.getElementById("num").value);
 var resposta = document.getElementById('resposta');
 var vet = document.getElementById('vetor');

 vet.innerHTML = vetor;
 resposta.innerHTML = search(vetor,num)

}

function search (vetor, elemento)
{
 if(vetor.lastIndexOf(elemento)>=0)
  return "Está no índice "+vetor.lastIndexOf(elemento);
 else
  return "Não está no array"
}

Rode e teste! Veja a diferença!

Converter String para Número e vice-versa em JavaScript

Neste tutorial, vamos aprender como transformar uma variável que é string em número (tanto inteiro como decimal, os floats) e vice-versa, em JavaScript.

Tutorial anterior: Como receber dados do usuário

Trabalhando com Dados do Usuário

Vamos criar um script que pede um número ao usuário, e armazena na variável num1.

Depois, vamos pedir outro número ao usuário, e vamos armazenar na variável num2.

Por fim, vamos exibir o resultado da soma dessas duas variáveis, no documento HTML.

Nosso código HTML/JS fica:

<!DOCTYPE html>
<html>
 <head>
   <title>Curso JavaScript Progressivo</title>

   <script type="text/javascript">
    var num1 = prompt("Primeiro numero: ");
    var num2 = prompt("Segundo  numero: ");
    document.write("Soma = ", num1+num2);
   </script>

 </head>
</html>

Digitando 1 num primeiro prompt() e 2 no segundo, temos o resultado:
12

Ou seja: 1 + 2 = 12
É...

Acho que o JavaScript não é muito com Matemática, não é mesmo?
É sim! Mas foi a gente que errou!

E por um motivo bem simples: quando o usuário digita algo para o método prompt(), este método armazena a informação digitada na forma de STRING.

Ou seja, não é 1, é "1" que está armazenado na variável num1, é um texto.
Não é 2, é "2".

Então, fizemos: "1" + "2" = "12"
Ou seja, agrupamos, concatenamos duas strings, grudamos uma na outra!

String para Inteiro: parseInt()

Para calcularmos corretamente a soma, precisamos usar uma função que já vem, por natureza, no JavaScript, a parseInt().

Para transformar "2" em 2, basta fazer: parseInt("2")
Ou seja, essa função recebe uma string e transforma num inteiro.

Vamos calcular a soma novamente, mas ao invés e usar num1 e num2, vamos usar parseInt(num1) e parseInt(num2) e ver o resultado:


<!DOCTYPE html>
<html>
 <head>
   <title>Curso JavaScript Progressivo</title>

   <script type="text/javascript">
    var num1 = prompt("Primeiro numero: ");
    var num2 = prompt("Segundo  numero: ");
    document.write("Soma = ", parseInt(num1) + parseInt(num2) );
   </script>

 </head>
</html

O resultado da soma fica:
Como transformar texto em número

Agora sim! O JS somou dois inteiros e exibiu a soma corretamente.
Faça um teste: digite um número decimal (lembre-se de usar ponto ao invés de vírgula).

String para Decimal: parseFloat()

Se digitar 0.5 para o primeiro número e 1.5 para o segundo, o resultado do parseInt() será um bizarro 1. Isso mesmo:
0.5 + 1.5 = 1

Isso acontece pois usamos número decimais (flutuantes) na função parseInt(), que deve receber apenas números inteiros.

A maneira correta de transformar string para decimais (flutuantes) é usando a função parseFloat(), veja como fica o código:



<!DOCTYPE html>
<html>
 <head>
   <title>Curso JavaScript Progressivo</title>

   <script type="text/javascript">
    var num1 = prompt("Primeiro numero decimal: ");
    var num2 = prompt("Segundo  numero decimal: ");
    document.write("Soma = ", parseFloat(num1) + parseFloat(num2) );
   </script>

 </head>
</html>

Conversão de Números para Strings

Para converter um número, seja ele inteiro ou decimal, em uma string, é bem simples: basta concatenar ele com uma String vazia.

Ou seja, 'somar' o número com "", veja:
1 + "" = "1"
2.9 + "" = "2.9"
2112 + "" = "2112"

Ou seja, o JavaScript entende que se somar um número com uma String, o resultado deve ser uma nova string, cuja concatenação é o número mais uma string vazia, ou seja, o número na forma de string.

Durante nosso curso precisaremos fazer essas conversões diversas vezes, dependendo do tipos de dados em JavaScript que queremos trabalhar.

Recebendo Dados e Informações do Usuário - Método prompt()

Neste tutorial de nosso Curso de JavaScript, vamos aprender como receber dados, informações do usuário. Ou seja, vamos aprender como salvar em variáveis algo que o usuário forneça (digitando, por exemplo). Isso será feito através do método prompt().

Tutorial anterior: Atribuindo e Acessando Valores de Variáveis

Troca de Informações em Programação

O que acontece quando você liga o computador?
Ele abre o navegador? O editor de texto? Começa a tocar uma música?

A reposta é: depende.
O que vai acontecer depende do que o usuário fizer. Especificamente, sua máquina reage de acordo com o que você fizer.

Se clicar no Chrome ou Firefox, vai abrir o navegador.
Se clicar no Excel, abre o editor de planilhas.
Etc etc

Clicar...abrir...digitar...isso tudo são informações que o usuário repassa para o computador.
Ele recebe, checa e toma uma atitude dependendo do que você fez.

É isso que vamos aprender agora: receber dados, informações do usuário, armazenar em variáveis e usar elas para algum propósito, em JavaScript!

O método prompt() do JavaScript

Exite muuuuuitas maneiras de receber dados do usuário, em JS, que está acessando sua página.
Vamos ensinar uma maneira agora, através do método prompt().



Mais adiante, em nosso curso, vamos te explicar melhor e com mais calma o que é um método, e vamos aprender até fazer os nossos. Por hora, imagine que método é, basicamente, um comando.

Vamos usar o comando prompt() para capturar algo que o usuário vai digitar.
O formato do uso é o seguinte:

variavel = prompt("Texto que vai aparecer:")

Ao fazer isso, vai aparecer uma janela quando o usuário entre no seu site, e nessa janela tem escrito "Texto que vai aparecer" e um campo para o usuário digitar algo.

Após digitar e dar enter (ou clicar em OK), o que ele digitou vai virar uma string, armazenada na variável variavel.

Exemplo de uso do prompt()

Crie uma página web que pergunte o nome do usuário, salve ele numa variável e depois exiba uma mensagem de boas vindas na página.

Vamos armazenar o que o usuário digitar na variável nome.
Em seguida, usamos o método document.write() para exibir o que tem dentro dessa variável.

Veja como ficou nosso código JavaScript:

<!DOCTYPE html>
<html>
 <head>
   <title>Curso JavaScript Progressivo</title>

   <script type="text/javascript">
    var nome = prompt("Digite seu nome: ")
    document.write("Bem vindo, ", nome);
   </script>

 </head>
</html>

O resultado deve ser o seguinte:
Salvar o que a pessoa digitou - Método prompt()

Mensagem no documento HTML:
Curso de JavaScript online grátis com certificado

Exemplo de uso do prompt()

Crie uma página HTML com um script em JS que pergunta a idade do usuário e armazena em uma variável. Depois, exiba: "Você tem x anos", onde 'x' é o número que o usuário forneceu.

Essa mensagem não deve ser exibida no documento HTML e sim numa pop-up do tipo alert.

Aqui, a ideia é a mesma do exemplo anterior, porém ao invés de usar document.write() vamos usar o comando alert():

<!DOCTYPE html>
<html>
 <head>
   <title>Curso JavaScript Progressivo</title>

   <script type="text/javascript">
    var idade = prompt("Qual sua idade: ");
    alert("Você tem " + idade + " anos de idade");
   </script>

 </head>
</html>


Note que usamos o símbolo de + para 'unir' as strings dentro do comando alert.
Tutorial de JavaScript online grátis

Simples e bacana, não?
Certamente você já acessou algum sistema que exibia esses tipos de mensagens, agora você fez isso.

Parabéns, já é um verdadeiro programador JavaScript!
Vamos seguir adiante em nosso curso.