[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.33,0:00:04.65,Default,,0000,0000,0000,,Escrevi um programa para te contar\Ndetalhes sobre Winston Dialogue: 0,0:00:04.65,0:00:08.36,Default,,0000,0000,0000,,mas não muitos, pois Winston gosta de \Nmanter um pouco de mistério. Dialogue: 0,0:00:08.36,0:00:10.91,Default,,0000,0000,0000,,Esse é apenas o jeito do Winston. Dialogue: 0,0:00:10.91,0:00:12.94,Default,,0000,0000,0000,,Vamos ver como eu fiz esse programa. Dialogue: 0,0:00:12.94,0:00:16.70,Default,,0000,0000,0000,,Criei algumas variáveis no começo para\Nguardar algumas informações sobre ele. Dialogue: 0,0:00:16.70,0:00:18.94,Default,,0000,0000,0000,,A primeira variável contém\Num número: a sua idade. Dialogue: 0,0:00:18.94,0:00:21.89,Default,,0000,0000,0000,,A segunda variável contém uma\Ncadeia de caracteres: seus olhos. Dialogue: 0,0:00:21.89,0:00:22.82,Default,,0000,0000,0000,,A terceira contém Dialogue: 0,0:00:22.82,0:00:26.38,Default,,0000,0000,0000,,um vetor de cadeias de caracteres que\Nsão coisas que ele gosta de fazer. Dialogue: 0,0:00:26.38,0:00:30.58,Default,,0000,0000,0000,,E as últimas duas variáveis contêm cadeias\Nde caracteres descrevendo onde ele nasceu. Dialogue: 0,0:00:31.38,0:00:36.29,Default,,0000,0000,0000,,Aqui embaixo, escrevi cada uma usando o\Ncomando text e usando o nome da variável. Dialogue: 0,0:00:36.29,0:00:39.72,Default,,0000,0000,0000,,E, é claro, para o vetor, eu tenho que\Nacessar cada elemento do vetor Dialogue: 0,0:00:39.72,0:00:43.15,Default,,0000,0000,0000,,usando notação com chaves. Dialogue: 0,0:00:43.15,0:00:48.64,Default,,0000,0000,0000,,Agora, todas essas cinco variáveis contêm\Ninformações sobre a mesma coisa: Winston. Dialogue: 0,0:00:48.64,0:00:51.60,Default,,0000,0000,0000,,Mas as variáveis não sabem \Nque elas são sobre a mesma coisa. Dialogue: 0,0:00:51.60,0:00:58.20,Default,,0000,0000,0000,,Em Javascript, quando você quer guardar\Nmúltiplas informações que são relacionadas Dialogue: 0,0:00:58.20,0:01:02.97,Default,,0000,0000,0000,,temos um jeito melhor de guardá-las\Nque é bem legal e é chamado de objeto. Dialogue: 0,0:01:03.12,0:01:06.80,Default,,0000,0000,0000,,Isso significa que ao invés de cinco\Nvariáveis, podemos ter Dialogue: 0,0:01:06.80,0:01:11.62,Default,,0000,0000,0000,,uma única variável que guarda toda\Nessa informação, o que é bem legal. Dialogue: 0,0:01:11.62,0:01:14.33,Default,,0000,0000,0000,,Vamos testar com as informações do Winston\N Dialogue: 0,0:01:14.33,0:01:17.64,Default,,0000,0000,0000,,Primeiro, vamos declarar a variável\Ne chamá-la de Winston. Dialogue: 0,0:01:18.28,0:01:24.70,Default,,0000,0000,0000,,E então, colocamos chaves - chaves, \Nnão colchetes - e um ponto e vírgula. Dialogue: 0,0:01:24.70,0:01:30.39,Default,,0000,0000,0000,,Criamos um objeto mas ele não tem\Nabsolutamente nenhuma informação dentro. Dialogue: 0,0:01:31.83,0:01:35.39,Default,,0000,0000,0000,,Para adicionar um pouco de\Ninformação, temos que criar propriedades. Dialogue: 0,0:01:35.39,0:01:41.52,Default,,0000,0000,0000,,E cada propriedade é uma chave e um valor.\NPor exemplo, idade seria "idade: 19" Dialogue: 0,0:01:41.52,0:01:47.40,Default,,0000,0000,0000,,E então para os olhos, vamos adicionar\Numa vírgula e então "olhos: pretos". Dialogue: 0,0:01:48.14,0:01:52.74,Default,,0000,0000,0000,,Agora, o Winston tem duas \Npropriedades dentro do objeto. Dialogue: 0,0:01:52.74,0:01:59.41,Default,,0000,0000,0000,,Para gostos, podemos colocar gostos: e\Nentão vou apenas copiar e colar lá de cima Dialogue: 0,0:01:59.93,0:02:03.93,Default,,0000,0000,0000,,Muito bem. Vamos dar uma olhada nisso.\NWinston tem três propriedades. Dialogue: 0,0:02:03.93,0:02:11.55,Default,,0000,0000,0000,,Toda propriedade tem uma chave, que está à\Nesquerda, e um valor, que está à direita. Dialogue: 0,0:02:12.65,0:02:16.69,Default,,0000,0000,0000,,Para a chave, deve-se seguir as mesmas\Nregras que nomes de variáveis Javascript. Dialogue: 0,0:02:17.32,0:02:20.10,Default,,0000,0000,0000,,Sem espaços, começando com\Numa letra, tudo isso. Dialogue: 0,0:02:20.51,0:02:24.46,Default,,0000,0000,0000,,Para o valor, pode ser qualquer tipo\Nde valor que já vimos até agora. Dialogue: 0,0:02:24.46,0:02:27.59,Default,,0000,0000,0000,,Poderia ser um número, uma\Ncadeia de caracteres, um vetor. Dialogue: 0,0:02:27.59,0:02:33.40,Default,,0000,0000,0000,,Poderia até mesmo ser booleano, poderíamos\Nadicionar eLegal: verdadeiro, é claro. Dialogue: 0,0:02:33.76,0:02:37.92,Default,,0000,0000,0000,,Na verdade, o valor poderia até\Nmesmo ser outro objeto. Dialogue: 0,0:02:37.92,0:02:43.27,Default,,0000,0000,0000,,Então, CidadeNatal e EstadoNatal são mesmo\Npedaços de informação sobre a mesma coisa, Dialogue: 0,0:02:43.27,0:02:45.31,Default,,0000,0000,0000,,que é uma única localização. Dialogue: 0,0:02:45.31,0:02:48.75,Default,,0000,0000,0000,,E então acho que faria mais sentido\Nguardar isso como um objeto. Dialogue: 0,0:02:49.10,0:02:52.97,Default,,0000,0000,0000,,Vou adicionar outra chave, local de\Nnascimento, e para o valor vou colocar Dialogue: 0,0:02:52.97,0:02:59.77,Default,,0000,0000,0000,,sinal de chaves de novo e dentro vou ter\Numa chave para cidade, "Mountain View", Dialogue: 0,0:02:59.77,0:03:03.88,Default,,0000,0000,0000,,e então estado, "California". Dialogue: 0,0:03:03.88,0:03:09.74,Default,,0000,0000,0000,,Você pode ver que pode realmente guardar\Nmuita informação dentro de um objeto. Dialogue: 0,0:03:11.03,0:03:15.46,Default,,0000,0000,0000,,Agora que temos esse objeto que descreve\Ntoda essa informação sobre Winston. Dialogue: 0,0:03:15.46,0:03:19.53,Default,,0000,0000,0000,,Vamos tentar deletar aquelas velhas\Nvariáveis separadas que não sabiam Dialogue: 0,0:03:19.53,0:03:20.64,Default,,0000,0000,0000,,umas das outras. Dialogue: 0,0:03:23.84,0:03:26.05,Default,,0000,0000,0000,,Agora temos um erro. Dialogue: 0,0:03:26.05,0:03:29.76,Default,,0000,0000,0000,,E isso é porque nossos comandos text\Nestão referenciando as variáveis antigas. Dialogue: 0,0:03:29.76,0:03:33.66,Default,,0000,0000,0000,,Temos que atualizá-los para usar a\Ninformação do objeto. Dialogue: 0,0:03:34.29,0:03:40.08,Default,,0000,0000,0000,,Vamos começar comentando os três últimos\Npara fazermos um de cada vez. Dialogue: 0,0:03:41.26,0:03:46.01,Default,,0000,0000,0000,,Aqui diz WinstonIdade agora.\NO que precisamos fazer é substituir isso. Dialogue: 0,0:03:46.01,0:03:49.12,Default,,0000,0000,0000,,Então vamos digitar winston porque\Né o nome da variável. Dialogue: 0,0:03:49.68,0:03:54.96,Default,,0000,0000,0000,,Repare que se deixarmos desse jeito, ele\Ndiz [object Object]. Isso é muito grave. Dialogue: 0,0:03:54.96,0:03:58.97,Default,,0000,0000,0000,,É o Javascript nos dizendo que estamos\Ntentando transformar um objeto inteiro Dialogue: 0,0:03:58.97,0:04:04.63,Default,,0000,0000,0000,,em uma cadeia de caracteres. Mas nós só\Nqueremos acessar sua idade dentro dele. Dialogue: 0,0:04:04.63,0:04:10.51,Default,,0000,0000,0000,,O que fazemos é colocar um ponto e então\Nescrevemos a chave apropriada que é idade. Dialogue: 0,0:04:11.01,0:04:14.83,Default,,0000,0000,0000,,Pronto! Nós temos a idade. Chamamos \Nisso de notação de ponto, Dialogue: 0,0:04:14.83,0:04:19.93,Default,,0000,0000,0000,,onde escrevemos o nome da variável do\Nobjeto e um ponto e a chave do atributo. Dialogue: 0,0:04:21.52,0:04:25.06,Default,,0000,0000,0000,,Então podemos ir e fazer mais agora.\NVamos descomentar isso. Dialogue: 0,0:04:25.06,0:04:29.88,Default,,0000,0000,0000,,E então no lugar de winstonOlhos, vamos\Ncolocar winston, ponto, olhos. Dialogue: 0,0:04:29.88,0:04:36.70,Default,,0000,0000,0000,,E para esse aqui, vai ser winston, ponto,\Ngostos, e então winston, ponto, gostos, um Dialogue: 0,0:04:37.31,0:04:41.39,Default,,0000,0000,0000,,E para esse último, é um pouco\Nmais complicado Dialogue: 0,0:04:41.39,0:04:44.90,Default,,0000,0000,0000,,porque é um objeto dentro de um objeto. Dialogue: 0,0:04:44.90,0:04:50.67,Default,,0000,0000,0000,,Vamos dizer winston, ponto, \NlocalDeNascimento, mas se deixarmos assim Dialogue: 0,0:04:50.67,0:04:54.68,Default,,0000,0000,0000,,ainda é apenas o objeto inteiro então\Ntemos que colocar ponto, cidade. Dialogue: 0,0:04:54.100,0:05:01.54,Default,,0000,0000,0000,,Vamos fazer isso aqui... winston, ponto,\NlocalDeNascimento, ponto, estado. Dialogue: 0,0:05:01.57,0:05:05.72,Default,,0000,0000,0000,,Isso é realmente legal porque você pode\Nacessar dentro dos objetos que estão Dialogue: 0,0:05:05.72,0:05:07.51,Default,,0000,0000,0000,,dentro de outros objetos. Dialogue: 0,0:05:08.45,0:05:11.48,Default,,0000,0000,0000,,Bom. Excelente. Dialogue: 0,0:05:11.48,0:05:16.98,Default,,0000,0000,0000,,Como você pode ver, objetos são uma\Nexcelente maneira de guardar um monte de Dialogue: 0,0:05:16.98,0:05:21.19,Default,,0000,0000,0000,,pedaços de informação relacionados sobre\Num objeto e poder acessá-los depois. Dialogue: 0,0:05:21.19,0:05:24.45,Default,,0000,0000,0000,,E, quando você continuar aprendendo, vai\Ndescobrir quanto objetos são legais! Dialogue: 0,0:05:24.45,0:05:26.00,Default,,0000,0000,0000,,Legendado por [Alberto Oliveira].\NRevisado por [Fernando dos Reis]