WEBVTT 00:00:00.903 --> 00:00:03.803 He escrito un programa para decirles algunos detalla sobre 00:00:03.803 --> 00:00:07.709 "Winston", pero no muchos porque a "Winston" le gusta mantener cierto 00:00:07.709 --> 00:00:11.870 misterio. Así es "Winston". Así que veamos 00:00:11.870 --> 00:00:15.334 cómo hice este programa. Hice algunas variables en la parte de arriba para almacenar 00:00:15.334 --> 00:00:20.034 información sobre él. La primera variable almacena un número - su edad - la segunda variable almacena 00:00:20.034 --> 00:00:23.955 una cadena de caracteres - sus ojos - la tercera tiene un arreglo de cadenas de caracteres, 00:00:23.955 --> 00:00:27.907 que son cosas que le gusta hacer, y las últimas dos variables almacenan 00:00:27.907 --> 00:00:31.066 cadenas de caracteres que describen el lugar donde nació. 00:00:31.066 --> 00:00:36.110 Después aquí abajo, escribí cada una de las variables usando el comando "text" y el nombre de la variable. 00:00:36.110 --> 00:00:39.699 Y por supuesto, para el arreglo, tengo que acceder a cada uno de los elementos del arreglo 00:00:39.699 --> 00:00:43.450 usando la notación con corchetes. Genial. Ahora, 00:00:43.450 --> 00:00:48.636 estas cinco variables describen información sobre el mismo tema: "Winston". 00:00:48.636 --> 00:00:52.028 Pero las variables no saben que ellas tienen información del mismo tema. 00:00:52.028 --> 00:00:55.502 Y ya sabes, en Javascript, cuando vas a 00:00:55.502 --> 00:00:59.289 almacenar muchas piezas de información que están relacionadas, tenemos una mejor manera de hacerlo, 00:00:59.289 --> 00:01:03.125 que es genial, y se llama objeto. 00:01:03.125 --> 00:01:06.795 Es decir, en lugar de tener 5 variables, podemos tener una sola 00:01:06.795 --> 00:01:11.623 variable que almacene toda la información, lo cual es genial. 00:01:11.623 --> 00:01:15.169 Tratemos de hacerlo con la información de "Winston". En primer lugar, declararemos 00:01:15.169 --> 00:01:18.837 la variable y la llamaremos "winston". Y luego 00:01:18.837 --> 00:01:23.399 ponemos una llave que abre - asegúrate de que sea una llave y no un corchete - 00:01:23.399 --> 00:01:27.107 y un punto y coma. Hemos creado un objeto 00:01:27.107 --> 00:01:31.419 pero no tiene información dentro. 00:01:31.419 --> 00:01:35.668 Así que para añadir información, necesitamos añadir propiedades. 00:01:35.668 --> 00:01:41.276 Y cada propiedad es una llave y un valor. Por ejemplo, la edad, y escribimos "age: 19" (edad: 19). 00:01:41.276 --> 00:01:43.789 Ok. Y luego para los ojos, vamos a añadir 00:01:43.789 --> 00:01:48.039 una coma, y luego "eyes: black". (ojos: negros). Ok, bien, 00:01:48.039 --> 00:01:52.742 ahora "winston" tiene propiedades dentro del objeto. 00:01:52.742 --> 00:01:55.607 Para sus gustos, podemos ir a "likes:" y 00:01:55.607 --> 00:02:00.076 voy a copiar y pegar esto desde aquí... y 00:02:00.076 --> 00:02:04.000 muy bien. Fíjense bien, "winston" ya tiene tres propiedades. 00:02:04.000 --> 00:02:07.527 Cada propiedad tiene una llave que es esto que está en el lado izquierdo, 00:02:07.527 --> 00:02:12.796 y un valor, que está del lado derecho. 00:02:12.796 --> 00:02:15.632 Las llaves tienen que cumplir con las mismas reglas que las variables 00:02:15.632 --> 00:02:20.319 de Javascript. Sin espacios, empezar con una letra, todo eso. 00:02:20.319 --> 00:02:22.960 Los valores pueden ser de cualquier tipo 00:02:22.960 --> 00:02:27.124 de los que hemos visto hasta ahora. Pueden ser números, una cadena de caracteres, un arreglo, 00:02:27.124 --> 00:02:33.826 también puede ser un booleano, así que podemos añadir aquí "isCool: true" (es agradable: verdadero), por supuesto. 00:02:33.826 --> 00:02:38.068 De hecho, el valor puede ser otro objeto. 00:02:38.068 --> 00:02:42.709 Así que vemos que "BirthCity" (ciudad de nacimiento) y "BirthState" (estado de nacimiento) en realidad es información relacionada 00:02:42.709 --> 00:02:46.616 con una misma dirección. Y creo que tiene más sentido 00:02:46.616 --> 00:02:51.042 si almaceno esta información como un objeto. Añadiré otra llave, "birthplace:" (lugar de nacimiento), 00:02:51.042 --> 00:02:54.836 y para el valor, tengo que poner llaves de nuevo 00:02:54.836 --> 00:02:58.376 y dentro voy a tener una llave para la ciudad "city:", 00:02:58.376 --> 00:03:02.287 y el valor es "Mountain View", y luego el estado "state:" 00:03:02.287 --> 00:03:06.766 "California". ¡Genial! Así que como puedes ver es posible 00:03:06.766 --> 00:03:10.733 almacenar información muy importante dentro de un objeto. 00:03:10.733 --> 00:03:15.459 Muy bien. Ahora que tenemos este objeto tan agradable que describe toda la información sobre "Winston", 00:03:15.459 --> 00:03:18.783 tratemos de borrar todas estas variables separadas 00:03:18.783 --> 00:03:23.066 que no saben de la existencia de las otras. Ok. 00:03:23.066 --> 00:03:27.039 Oh oh. Ahora nos marcó un error. Y es porque nuestros 00:03:27.039 --> 00:03:30.739 comandos "text" hacen referencia a las variables anteriores. Necesitamos actualizarlos 00:03:30.739 --> 00:03:34.202 para que ahora despliegue la información que está dentro del objeto. 00:03:34.202 --> 00:03:38.218 Vamos a empezar poniendo comentarios en los últimos tres para que podamos 00:03:38.218 --> 00:03:43.642 hacer uno por uno. Ok. Aquí dice "Edad actual de Winston". 00:03:43.642 --> 00:03:46.396 Lo que tenemos que hacer es reemplazar esto, y escribir 00:03:46.396 --> 00:03:50.293 "winston" porque es el nombre de la variable. Fíjense 00:03:50.293 --> 00:03:53.834 que si dejo esto así como está, aquí nos dice "object object". 00:03:53.834 --> 00:03:57.369 Y eso está mal. Javascript nos está diciendo que estamos tratando de convertir un objeto 00:03:57.369 --> 00:04:01.579 en una cadena de caracteres. Pero lo que en realidad 00:04:01.579 --> 00:04:06.134 queremos hacer es acceder a la edad que dice dentro. Así que lo que hacemos es poner 00:04:06.134 --> 00:04:11.063 un punto, y luego escribimos la llave de la propiedad, que es "age". 00:04:11.063 --> 00:04:14.897 ¡Tan tan! Tenemos la edad. A esto le llamamos "notación de punto", 00:04:14.897 --> 00:04:18.284 en la que escribimos el nombre de la variable del objeto, y luego un punto, 00:04:18.284 --> 00:04:21.791 y después la llave de la propiedad. Ok, así que podemos 00:04:21.791 --> 00:04:26.244 hacer más ahora. Vamos a quitar el comentario de aquí, y luego en lugar de "WinstonEyes", 00:04:26.244 --> 00:04:29.877 vamos a escribir "winston.eyes", y luego 00:04:29.877 --> 00:04:34.074 para este otro,escribiremos "winston.likes[0]", 00:04:34.074 --> 00:04:37.741 y luego "winston.likes[1]", y luego 00:04:37.741 --> 00:04:42.501 para este último, es un poco más complicado porque 00:04:42.501 --> 00:04:45.451 es un objeto dentro de otro objeto. Así que vamos a escribir 00:04:45.451 --> 00:04:48.784 "winston" y luego el punto, y "birthplace", 00:04:48.784 --> 00:04:53.288 pero si hacemos eso es sólo el objeto completo, así que tenemos que escribir punto y 00:04:53.288 --> 00:04:57.455 "city". Ok, vamos a hacer esto aquí... "winston", 00:04:57.455 --> 00:05:01.572 punto "birthplace" punto "state". 00:05:01.572 --> 00:05:05.791 ¡Tan tan! Esto es excelente porque puedes llegar hasta el interior de los objetos 00:05:05.791 --> 00:05:09.416 que están dentro de un objeto. Muy bien. 00:05:10.863 --> 00:05:13.919 Asombroso. Entonces como puedes ver, 00:05:13.919 --> 00:05:17.597 usar objetos es una manera genial de almacenar mucha información relacionada, 00:05:17.597 --> 00:05:21.162 información sobre un objeto, y que se pueda acceder más tarde. 00:05:21.162 --> 00:05:25.332 ¡Y cuando sigas adelante, vas a saber lo asombrosos que son los objetos!