S04 – Atividade de Aprendizagem: Objetos JavaScript
Visão Geral
Objetos JavaScript são uma maneira de agrupar dados e funções relacionadas. Eles são um conceito central em JavaScript e são amplamente utilizados na linguagem. Nesta atividade, você aprenderá a criar e usar objetos em JavaScript.
"Um objeto é uma coleção de dados e/ou funcionalidades relacionadas (que geralmente consistem em diversas variáveis e funções — que são chamadas de propriedades e métodos quando estão dentro de objetos)." – MDN
Objetivos de Aprendizagem do Curso
- Demonstrar proficiência na sintaxe da linguagem JavaScript.
- Usar JavaScript para responder a eventos e modificar HTML de forma dinâmica.
Preparação
Em vez de armazenar dados relacionados em arrays paralelos ou multidimensionais complexos, os dados relacionados podem ser armazenados usando objetos que são mais legíveis, estáveis e fáceis de manter.
- A estrutura do objeto JavaScript é semelhante a um Dicionário em Python. Objetos em Javascript são coleções pares de chave:valor.
- A chave está no lado esquerdo dos dois-pontos e o valor está no lado direito.
- A chave é uma string, mas nem sempre precisa estar entre aspas. Aspas são necessárias se a chave tiver um espaço.
- O valor pode ser qualquer coisa que possa ser atribuída a uma variável em Javascript: primitivos, arrays, outros objetos, funções, etc.
- Chaves que armazenam dados são chamadas de propriedades, chaves que armazenam funções são chamadas de métodos.
Este é um exemplo de um literal de objeto JavaScript (uma coleção de pares de chave-valor) representando uma pessoa em um formato conciso e legível.
let pessoa = {
nome: "Antonia Francesca",
idade: 30,
profissao: "Engenheira de Software",
hobbies: ["ler", "tocar violão", "caminhar"],
endereco: {
rua: "123 Camino Real",
cidade: "Santa Rosa",
pais: "Honduras"
},
estaEmpregado: true,
saudacao: function() {
console.log(`Olá, meu nome é ${this.nome}.`);
}
};
- O objeto
pessoainclui as propriedadesnome,idade,profissao,hobbies,enderecoeestaEmpregado. - Ele também inclui um método
saudacaoque registra uma mensagem de saudação no console usando o nome da pessoa. - A propriedade
enderecoé um objeto em si, contendo propriedades aninhadas:rua,cidadeepaís. - Você pode acessar e modificar as propriedades e invocar os métodos do objeto pessoa usando colchetes [] ou notação de ponto.
✓ Determine a saída das seguintes declarações dado o objeto pessoa definido acima.
-
console.log(pessoa['estaEmpregado']); // notação de colchetes -
console.log(pessoa.hobbies[0]); // notação de ponto -
console.log(pessoa.idade); // notação de ponto -
console.log(pessoa['endereco'].cidade); // notação combinada
Respostas
1.true 2. ler (obtém o primeiro hobby da lista) 3.
30 3. Santa Rosa
Atualizar um valor funciona como você espera.
pessoa.idade = 31;
Referência: O Básico sobre Objetos – MDN
Instruções da Atividade
Use objetos e encapsulamento para criar uma representação de um cronograma típico de cursos universitários.
Os seguintes objetos JavaScript do CodePen ☼ podem ser usados para fazer esta atividade.
- Considerando o seguinte literal de objeto para um único curso, WDD 131,
adicione uma propriedadelet umCurso = { codigo: "WDD131", nome: "Fundamentos da Web Dinâmica", creditos: 2, };secoesao objeto. Como o curso pode ter mais de uma seção, faça dessasseçõesum array de pelo menos 2 (dois) objetos com as seguintes propriedades:- section
- matriculado
- instrutor
- Crie uma função para definir o nome e o número do curso em HTML. Passe o objeto do curso para sua função. Use a notação de ponto para acessar as partes do objeto que você precisa.
- Crie outra função que irá gerar as seções em uma tabela com um id de
secoes.
Avalie Seu Conhecimento
Exemplo de Solução: CodePen ☼ Objetos JavaScript
Exemplo: Adicionar propriedade de secoes com dois objetos de seção
let umCurso = {
codigo: "WDD131",
nome: "Fundamentos da Web Dinâmica",
creditos: 2,
secoes: [
{ section: "001", matriculado: 95, instrutor: "Roberto Diaz Rodriguez" },
{ section: "002", matriculado: 80, instrutor: "Sarah Gobble" }
]
};
Exemplo: Defina as informações do curso para o elemento HTML existente com o id do
nomeDoCurso
function setInformacoesDoCurso(curso) {
document.querySelector("#nomeDoCurso").innerHTML = `${curso.codigo} – ${curso.nome}`;
}
Exemplo: Crie linhas em uma tabela HTML existente com um id de secoes para cada
seção existente.Este código separa a renderização usando uma função de mapa (map) do modelo
que cria uma linha.
function sectionTemplate(section) {
return `<tr>
<td>${section.numeroSecao}</td>
<td>${section.matriculado}</td>
<td>${section.instrutor}</td>
</tr>`;
}
function criarSecoes(curso) {
const html = curso.secoes.map(sectionTemplate);
document.querySelector("#secoes tbody").innerHTML = html.join("");
}