3
respostas

Adicionado propriedades dinamicamente

No curso de "Angular 1" do Instrutor Flávio existe um capitulo Testando os seus conhecimentos. Onde, são aplicadas questões de JavaScript. Uma das questões apresenta o seguinte código

const objeto  = {}; // sem propriedade alguma
objeto.nome = "Flávio";  // adicionou propriedade dinamicamente
console.log(objeto);

O curso "Curso JavaScript: Programando na linguagem da web" é um pré-requisito. Existe algum capitulo que trata de criação de propriedades criadas dinamicamente? Poderia me indicar o capitulo, para que eu possa fazer uma revisão?

Obrigado

3 respostas

Flávio, acabei de fazer o curso "JavaScript: Programando na linguagem da web" e acho que não existe um capítulo específico sobre essa questão. A primeira abordagem do curso sobre criação de objetos customizados acontece na aula 05, atividade 04 ("Criando um objeto paciente"), mas sem muita explicação sobre as diferentes formas de se atribuir uma propriedade a um objeto.

Ainda estou aprendendo o básico em JS também, mas acho que esse teu trecho de código é só uma sintaxe alternativa a esta outra, mais clássica:

var objeto = {
    nome: "Flávio"
}

Você deve conseguir usar uma ou outra notação (nomeDoObjeto.nomeDoAtributo = valorDoAtributo ou nomeDoObjeto = { nomeDoAtributo : valorDoAtributo }) na maioria dos casos e talvez até misturá-los quando necessário.

E, se não me engano, mesmo se vc utilizar a notação de protótipos ou de classes propriamente ditas, ainda é possível utilizar a primeira notação:

// criando o objeto diretamente
var objetoFlavio = { };
objetoFlavio.nome = 'Flávio';
console.log(objetoFlavio); // retorna Object { nome: 'Flávio'}

// usando protótipo
function Aluno() { };
var alunoFlavio = new Aluno();
alunoFlavio.nome = 'Flávio';
console.log(alunoFlavio); // retorna Object { nome: 'Flávio'}

// usando classe
class Estudante {
    constructor() { }
}
var estudanteFlavio = new Estudante();
estudanteFlavio.nome = 'Flávio';
console.log(estudanteFlavio); // retorna Object { nome: 'Flávio'}

Internamente, cada um dos objetos acima deve ter algumas particularidades, mas em todos eles a notação nomeDoObjeto.nomeDoAtributo = valorDoAtributo parece funcionar.

Boa tarde, Renê.

Obrigado pela pronta resposta,

Como este curso é pré-requisito do curso de Angular 1. O que você acha de incluir algo do tipo numa futura atualização?

Cara, acabei de editar meu texto, mas ainda não tinha visto que vc já tinha respondido...

Então, não conheço Angular 1 e, se não me engano, a partir do Angular 2 já se usa TypeScript. Neste último a abstração e a orientação a objetos são bem mais pesadas (tanto que o pré-requisito do curso de Angular 2 já nem é mais JavaScript e sim EcmaScript6). Mas se vc percebeu que o curso de Angular 1 exige mais domínio de OO e isso não existe no pré-requisito, acho que poderiam sim abordar o assunto no curso básico de JS.