Return to Video

Tipos de Objeto (Versão vídeo)

  • 0:01 - 0:06
    Agora que já sabe o básico de java script, eu quero ensinar um uso interessante do Javascript.
  • 0:06 - 0:10
    Algo que chamamos de "programação orientada a objetos"
  • 0:10 - 0:13
    Mas primeiro precisamos entender porque isso é útil.
  • 0:13 - 0:18
    Então pensei em um programa que em faça sentido o uso da orientação objeto.
  • 0:18 - 0:25
    Agora, é bom a programa para se começar. No topo tenho duas variáveis que armazenam dados de um objeto.
  • 0:25 - 0:30
    Agora, o objeto literal é um tipo de objeto que já aprendemos, que criamos com duas chaves
  • 0:30 - 0:34
    e colocamos todas os nomes dessas propriedades e valores dentro.
  • 0:34 - 0:39
    Então temos duas dessas variáveis objetos, e embaixo temos essa função "drawWinston"
  • 0:39 - 0:41
    que recebe um único argumento,
  • 0:41 - 0:48
    e então desenha esse argumento, desenha uma imagem baseada nas propriedades x e y dos objetos.
  • 0:48 - 0:53
    e um título de acordo com as propriedades apelido e idade do objeto.
  • 0:53 - 0:58
    E agora embaixo finalmente, chamamos "drawWinston()" no adolescente e no adulto,
  • 0:58 - 1:01
    e isso é o que faz isso aparecer.
  • 1:01 - 1:06
    Bem legal. Agora, se vamos aqui, e olharmos para esses objetos.
  • 1:06 - 1:11
    veja que eles são muito parecidos.
  • 1:11 - 1:18
    Ambos tem as mesmas propriedades, e ambos podem ser usados para chamar a função "drawWinston()."
  • 1:18 - 1:24
    Na verdade, se você para pra pensar, ambos estão descrevendo um tipo Winston, certo ?
  • 1:24 - 1:29
    E podemos imaginar que talvez exista esse tipo abstrato de Winston no mundo.
  • 1:29 - 1:36
    e todo Winston tem os mesmos tipos de propriedades como, apelido, idade, x e y.
  • 1:36 - 1:42
    e aqui o que fizemos foi criar duas instâncias de Winston
  • 1:42 - 1:48
    para descrever, um tipo único de Winston, Então é um Winston adolescente e este um adulto.
  • 1:48 - 1:55
    Mas eles são realmente, bem parecidos, e sabe, há muitas coisas similares entre eles.
  • 1:55 - 2:01
    E, sabe, se você pensar nisso, há muito do modo como o mundo funciona também, por isso temos esses tipos de objetos abstratos como humanos e pessoas.
  • 2:01 - 2:06
    e então somos apenas instâncias específicas daqueles com nossas pequenas propriedades próprias .
  • 2:06 - 2:15
    Agora, nós podemos atualmente usar técnicas de orientação a objeto em JavaScript para essas variáveis do Winston
  • 2:15 - 2:22
    são instâncias formais do objeto Winston, eles sabem que eles compartilham essas propriedades.
  • 2:22 - 2:28
    Então, para fazer isso, a primeira coisa que precisamos fazer é descrever este tipo abstrato de Winston.
  • 2:28 - 2:31
    E faremos isso com uma variável
  • 2:31 - 2:39
    Você armazenará o tipo em uma variável. Então var Winston, usaremos W maiúsculo, porque sempre iniciamos nossos objetos com maiúsculo,
  • 2:39 - 2:42
    e vamos configura-lo como uma função.
  • 2:42 - 2:47
    E essa função é um tipo especial que chamamos de "construtor da função"
  • 2:47 - 2:52
    porque é isso o que será executado toda vez que criarmos uma nova instância do Winston,
  • 2:52 - 2:58
    Se Quisermos criar um Winston adolescente ou adulto, chamaremos essa função.
  • 2:58 - 3:06
    Isso significa que essa função deverá receber qualquer argumento que precise saber, afim de criar um Winston completo.
  • 3:06 - 3:11
    Nesse caso, precisa saber o apelido, idade, x e y.
  • 3:11 - 3:15
    Agora, uma vez que recebemos esses argumentos precisamos fazer algo com eles,
  • 3:15 - 3:21
    Precisamos na verdade associar a informação ao objeto Winston.
  • 3:21 - 3:29
    Usaremo uma nova palavra chave, chamada, "this". E "this" se refere a instância atual do objeto.
  • 3:29 - 3:35
    Então, "this.nickname", a propriedade nickname do objeto é igual a
  • 3:35 - 3:38
    o que for passado para o construtor da função, okay ?
  • 3:38 - 3:46
    E "this.age" é igual idade que é passada, "this.x" é igual ao x e "this.y"
  • 3:46 - 3:48
    igual ao y da entrada.
  • 3:48 - 3:58
    Muito bem, agora temos este tipo abstrato chamado Winston, e tem o construtor da função que usamos para create o novo Winston.
  • 3:58 - 4:00
    Vamos tentar usa-lo.
  • 4:00 - 4:05
    Vamos criar o Winston adolescente novamente, mas dessa vez faremos "winstonTeen", igual,
  • 4:05 - 4:10
    e ao invés de chaves, usaremos igual "newWinston".
  • 4:10 - 4:14
    Estamos dizendo "Queremos criar uma nova instância do tipo Winston"
  • 4:14 - 4:22
    e então passaremos a informação necessária, "Winsteen", 15, 20, 50, ok ?
  • 4:22 - 4:28
    E então podemos deletar esse antigo, porque não precisamos mais.
  • 4:28 - 4:31
    Tudo bem ? E agora está criado o novo Winsteen.
  • 4:31 - 4:36
    E agora podemos fazer "winstonAdult = new Winston()"
  • 4:36 - 4:40
    e é claro o nome dele é "Mr. Winst-a-lot", bom nome,
  • 4:40 - 4:47
    e ele tem 30 anos, e a posição é 229 e 50. Tudo bem ? E então podemos deletar esse objeto.
  • 4:47 - 4:51
    E, nosso código ainda funciona.
  • 4:51 - 4:58
    O que fizemos aqui foi o que eu disse certo, há esse, e esse tipo de dado abstrato que são um Winston
  • 4:58 - 5:05
    e podemos criar novas instâncias que tem essas propriedades que são únicas deles.
  • 5:05 - 5:09
    E apenas lembraremos das propriedades dentro deles
  • 5:09 - 5:14
    E lembrando é muito importante. Você sabe que aqui dentro temos esse "this.nickname, this.age"
  • 5:14 - 5:20
    Se acidentalmente, não tiver essa idade, perceba que agora diz, "undifined"
  • 5:20 - 5:23
    É porque lá embaixo, essa função drawWinston,
  • 5:23 - 5:28
    aguarda todos os objetos serem informados, inclusive a idade.
  • 5:28 - 5:31
    E se não colocarmos "this.age",
  • 5:31 - 5:34
    Não terá uma propriedade "age", certo ? Passamos para o construtor da função
  • 5:34 - 5:39
    Mas não fizemos nada com isso, tem que incluir isto no objeto usando a palavra chave "this"
  • 5:39 - 5:41
    Vamos adicionar novamente.
  • 5:41 - 5:46
    Agora,você deve estar pensando, você tem o um código que funciona e está fazendo essas mudanças.
  • 5:46 - 5:51
    Mas, sabe, o que fizemos já foi feito antes.
  • 5:51 - 5:56
    Mas aqui está a parte legal. Agora, todo o nosso Winston usa o mesmo construtor.
  • 5:56 - 6:01
    Se quisermos, podemos mudar propriedades do Winston.
  • 6:01 - 6:07
    Todos os Winstos, aqui dentro. Talvez "age", talvez queiramos mudar para "years old"
  • 6:07 - 6:13
    Podemos mudar apenas aqui, e agora em todos os nossos Winstons ficará "15 years old", "30 years old", certo ?
  • 6:13 - 6:17
    Eles estão pegando a parte que é unica deles, mas também está usando coisas que são compartilhadas entre eles.
  • 6:17 - 6:21
    E isso é a parte legal da programação orientada a objeto, essa ideia que
  • 6:21 - 6:27
    há esses tipos de objetos no mundo, e você pode criar novas instâncias desses objetos.
  • 6:27 - 6:30
    E há coisas que são parecidas neles, como, todos tem a mesma propriedades,
  • 6:30 - 6:36
    e há coisas que são diferentes como, essa propriedade na verdade tem um valor diferente dessa outra propriedade, certo ?
  • 6:36 - 6:41
    Mas então, podemos meio que, fazer o mesmo comportamento com ele, como chamar algumas funções.
  • 6:41 - 6:46
    e então usa-las de modo similar. Então esse é uma das coisas legais em programação orientada a objeto.
  • 6:46 - 6:49
    mas como você verá, há mais coisas.
  • Not Synced
    Então, fique ligado!
  • Not Synced
    Legendado por [Valter Bigeli]
Title:
Tipos de Objeto (Versão vídeo)
Description:

more » « less
Video Language:
English
Duration:
06:51

Portuguese, Brazilian subtitles

Revisions Compare revisions