En este video se comprueba la idea de que se puede aprender lo que sea. Solo se necesita a la persona correcta para que te lo explique. Excelente video!
Me he visto muuuchos vídeos y canales de formación y puedo decir sin miedo que este tiene el mejor contenido. Es directo y muy práctico, además tienes una dicción y una forma de explicar que hacen que sea ameno y agradable verlo. Gracias.
Que clara la tenes muchas gracias, ya tenia una base minima de setter y getter y siento que con vos puedo avanzar mucho mas, tanto en practico como en teorico, muchisimas gracias!!!
excelente video y muy buena explicacion, estoy realizando un bootcamp de JS y andaba medio perdido con las clases, pero aca me puse al dia me vere el curso completo, y le deje su like
Cada vez me gustan más este tipo de video ya que creo que no se olvidan de nada para un nivel básico y menos para alguien (como yo) que por ahí no entiende mucho (? Dicho esto, quería aprovechar el espacio para hacer una consulta ya que personalmente no logro entender la siguiente diferencia y es que, que diferencia hay entre un método declarado en el constructor y otro que no? No puedo guiarme ni nada, siquiera a través de documentación oficial :(. Agradecería su ayuda profe.
Muchas gracias Skull! El constructor es el método que se utiliza para crear un nuevo objeto en base a esa clase, y es el que se ejecuta cuando hacemos un new Clase(); El resto de métodos definidos, son los que tendrá el objeto creado a partir de ese new Clase(), salvo los que tengan el modificador static delante, que se ejecutan directamente desde la clase. Pero esto que te digo, es difícil explicarlo en un comentario, es mejor que nos lo preguntes en un directo!
Te ganaste un subscriptor Bro, he encontrado lo que necesitaba me ha costado un poco porque no puedo decir JS nuevo objeto del tipo tal. Me gustaría si conocen buena bibliografía de JS que puedan recomendar
Habitualmente son estructuras de datos que no se utilizan implícitamente, no las creas por ti mismo, pero se utilizan un montón. El propio DOM de Javascript es un árbol, el Virtual DOM de React también y así con un montón de ejemplos!
Muy buen titular amigo porque has explicado el temario con una alta puntuación. Gracias y saludos. No obstante, creo que has hecho un vídeo muy largo y bastante complicado en la segunda mitad. No he podido seguirte. Estimó que debes poner ejemplos entre tanta teoría. Saludos
Excelente video, y me salio una duda ya que sigo aprendiendo, se puede usar una clase en que la que se pueda interacturar y crear un metodo que se conecte al servidor con ajax obtener un dato y eso dato darselo a una propiedad de la clase, que lo he practicado y no sale o no funciona del todo. Pues dentro del ajax se imprime el valor de retorno pero asignar un valor no, todo queda ahi y note que no puedo usar tampoco this. En mis constructor ajax con javascript puro asimile un metodo success( data ) y donde se invoca lo imprime el parametro pero nada que se asigna el valor, nose si me has comprendido lo que estuve haciendo. Simplemente trate de leer un json que lo lee php y este me lo retorna. Saludos
El constructor de una clase, nunca puede ser asíncrono. Si necesitas crear un constructor asíncrono, debes utilizar un método estático: static async create( ) { const x = await ... return new Mi clase(x) }
Buenas!! El video está superbien, como todos los que hacéis! Pero siempre me entra una duda. ¿Porqué debería usar get dificultad() si puedo usar getDificultad() y lo mismo con los setters. Si puedo crear un método setDificultad(nuevaDif) que también compruebe si el valor introducido cumple una condición o dé un error, para qué queremos crear un set dificultad()?? Mil gracias!!!
La explicación es sencilla desde un punto de vista práctico. Imaginemos que creamos un objeto partiendo de esa clase, y lo llamamos "obj". La forma de acceder sería la siguiente: - get dificultad -> obj.dificultad - getDificultad -> obj.getDificultad() - set dificultad -> obj.dificultad = nuevaDificultad - setDificultad -> obj.setDificultad(nuevaDificultad) Como ves, al declarar los métodos como get y set, los conviertes en propiedades y puedes manipularlas como si fueran un atributo más. ¿Esto es bueno o malo? Depende bastante. Te animaría a que te pasases un día por uno de nuestros directos de Twitch y nos hagas esta pregunta para poder contestarla como se merece, ya que me gustaría poder enseñarte la pantalla para explicarlo bien del todo, que por aquí es muy dificil... 😅 Muchas gracias por comentar!
Buenas Pablo todo muy bien explicado. Aqui ando repasando conceptos. Una preguntilla entonces ¿Los métodos agregarLeccion() y eliminarUltimaLeccion() también son metodos setters? Entre otras muchas cosas a mi han enseñado que para distinguir un setter de un getter es que los getters siempre devuelven algo y los setters no, por tanto, los setters no tienen return. Muchas gracias, Saludos chicos :)
Muchas gracias! Realmente en este caso lo que hacen los métodos agregar y eliminar lección, es modificar un atributo de la clase de forma controlada, por lo que se pueden considerar setters de este atributo (las lecciones), desde un enfoque puro de POO. Pero aquí quiero recalcar que la definición que haces de getters y setters no es así del todo. - Un getter es un método que permite acceder a un atributo de la clase - Un setter es un método que permite establecer el valor de un atributo de la clase Como ves, ambas definiciones hablan de UN atributo, no de varios. Un método que acceda o modifique varios de estos atributos, no es ni un getter ni un setter, es simplemente un método.
venia con una frustracion terrible con este tema y las distintas formas que tiene javascript para generar clases, este video me despejo todas las dudas! Muchisimas gracias
Es una muy buena pregunta, pero en este caso no tiene que ver con JavaScript. Tienes que intentar entender qué es una clase, independientemente del lenguaje. Como resumen rápido, podemos decir que utilizamos las clases cuando queremos definir un tipo de objetos, que van a tener una serie de atributos y métodos predefinidos. Es bastante difícil intentar explicarlo en un comentario de UA-cam 😅 Si quieres te puedes pasar por un directo, o por Discord, y te lo explicamos allí (tienes los enlaces en la descripción)
yo veo algo raro ahi. titulo y dificultad y luego lecciones. cuando creas el objeto, como cargas las lecciones? porque tengo que entender que seria algo asi como [titulo1, dificu1,[lecci1, lecci2], titu2, difi2,[leci1, leci2, leci3,leci4]]] y, no s'e que es eso.
@@DesarrolloUtil Ayudame con esto, para tener una referencia en el minuto 6 a titulo y dificultad le agregas un array pero no lo defines en el construct. no deber'ia ser construct (titu, dific, []) Tal vez, tengo esa idea y lo que explicas en el video apunta a otra cosa y a mi me llamo la atenci'on. no me mal interpretes no me refiero a que est'a mal. no digo eso. me explico?
En cuanto al zoom, hemos procurado buscar una solución intermedia entre móvil, PC y poder trabajar agusto. Si le damos mucho más tamaño al texto, se nos complica bastante poder explicar. Espero que lo entiendas!
Me parece tan patetico que estos lenguajes que presumen de ser tan dinamicos y reducir el codigo a lo mas simple y comodo posible, necesiten de un estupido "this." es algo realmente decepcionante, pero del que mas me sorprendio fue de python, tanto tabulado, def, sin ; y demas mamadas para hacerlo bien chulito y minimalista y me salen con el uso del fastidioso this, pense que era un lenguaje mas inteligente, que triste 😮💨 Pero tus tutos si son de los mejores hermano, puro alto nivel 😎👍
@@DesarrolloUtil gracias piensa también que se pueda leer en notebook o tablet. Eso te hará llegar a más púbico también. No dejes tanto espacio libre es mejor agrandar el texto. Más parecido a un powerpoint. Saludos!
En este video se comprueba la idea de que se puede aprender lo que sea. Solo se necesita a la persona correcta para que te lo explique. Excelente video!
Muchas gracias! Intentamos aportar algo distinto a la hora de explicar 🙂
triste que ya no subas videos, no tienen precio.
Me he visto muuuchos vídeos y canales de formación y puedo decir sin miedo que este tiene el mejor contenido. Es directo y muy práctico, además tienes una dicción y una forma de explicar que hacen que sea ameno y agradable verlo. Gracias.
No sé qué deciros ya, muchísimas gracias por estos mensajes. No sabéis lo que animan!
Eres el mejor, lo explicas todo tan bien sobretodo para aquellas personas a las que le cuestan (yo). Muchas gracias por tanto
Gran video! Estaba perdido con las variables privadas y ahora está clarísimo. Muchas gracias!!
Muchas gracias!
Que clara la tenes muchas gracias, ya tenia una base minima de setter y getter y siento que con vos puedo avanzar mucho mas, tanto en practico como en teorico, muchisimas gracias!!!
Gracias a ti!!
De los mejores videos que vi que explican este tema, super recomendado!
excelente video y muy buena explicacion, estoy realizando un bootcamp de JS y andaba medio perdido con las clases, pero aca me puse al dia me vere el curso completo, y le deje su like
eres un maquina, he entendido todo a la primera. gracias
Cada vez me gustan más este tipo de video ya que creo que no se olvidan de nada para un nivel básico y menos para alguien (como yo) que por ahí no entiende mucho (?
Dicho esto, quería aprovechar el espacio para hacer una consulta ya que personalmente no logro entender la siguiente diferencia y es que, que diferencia hay entre un método declarado en el constructor y otro que no? No puedo guiarme ni nada, siquiera a través de documentación oficial :(. Agradecería su ayuda profe.
Muchas gracias Skull!
El constructor es el método que se utiliza para crear un nuevo objeto en base a esa clase, y es el que se ejecuta cuando hacemos un new Clase();
El resto de métodos definidos, son los que tendrá el objeto creado a partir de ese new Clase(), salvo los que tengan el modificador static delante, que se ejecutan directamente desde la clase.
Pero esto que te digo, es difícil explicarlo en un comentario, es mejor que nos lo preguntes en un directo!
@@DesarrolloUtil Gracias profe por tomarse el tiempo de responder ayudar. Con esto que me dijo puedo encarar un poco mejor la duda!
Explicas muy bien bro! y no se lo digo a cualquiera ;)
Que locura de video, nunca lo habia visto tan claro
Muchas gracias Juan!
Es tremendo como explica este muchacho, es impresionante!
Mejor explicado no pudo estar, ¡Muchas gracias! ;D Ustedes se han convertido en mis nuevos profesores ♥
Me alegro!
Gracias Pablo... Saludos desde Venezuela (12/02/2023)
Muy buen video, me resolvio la duda que tenia :)
Que buen video, y que bien estructurado , me ha encantado, muchas gracias
Gracias a ti Roge!
Te ganaste un subscriptor Bro, he encontrado lo que necesitaba me ha costado un poco porque no puedo decir JS nuevo objeto del tipo tal. Me gustaría si conocen buena bibliografía de JS que puedan recomendar
Pues te diría que un buen punto de partida es el libro de Javascript Next!
sos un crack!!!! claro como el agua
Sos muy crack, gracias por la explicación !
Gracias a ti!
Excelente!! Muchas gracias!!!
Gracias a ti Sergio!
Excelente, recomendadisimo
Que buen video bro!
Muchas gracias!! muy buen vídeo!
Gracias a ti!
wow un video espectacular.
Muchas gracias ^^ super bien explicado.
Gracias a ti Gema!
De lo mejor que hay.
Muchas gracias!
bien explicado, gracias :D
Excelente contenido!!
Muy buena explicación, muchas gracias!!
A ti!
Gracias muy buena explicacion
wow muy genial amigo los tutoriales... en tus proyectos usas lo q son listas enlazadas , arboles.... o casi nunca lo usas?
Habitualmente son estructuras de datos que no se utilizan implícitamente, no las creas por ti mismo, pero se utilizan un montón. El propio DOM de Javascript es un árbol, el Virtual DOM de React también y así con un montón de ejemplos!
Saluods hermano.. NUevos suscriptor desde Venezuela (30/09/2022)
Buenas una duda. El tema de las propiedades privadas en JavaScript, no se ha solucionado ya con la "#"?? Me ha parecido leer algo por ahí.
Muy buen titular amigo porque has explicado el temario con una alta puntuación. Gracias y saludos.
No obstante, creo que has hecho un vídeo muy largo y bastante complicado en la segunda mitad. No he podido seguirte.
Estimó que debes poner ejemplos entre tanta teoría. Saludos
Sos el mejor!!!
Sos buenisimo, lastima la musica de fondo muy fuerte algunas veces
muy buen video , gracias
Gracias a tí por comentar 😀
Excelente video, y me salio una duda ya que sigo aprendiendo, se puede usar una clase en que la que se pueda interacturar y crear un metodo que se conecte al servidor con ajax obtener un dato y eso dato darselo a una propiedad de la clase, que lo he practicado y no sale o no funciona del todo. Pues dentro del ajax se imprime el valor de retorno pero asignar un valor no, todo queda ahi y note que no puedo usar tampoco this. En mis constructor ajax con javascript puro asimile un metodo success( data ) y donde se invoca lo imprime el parametro pero nada que se asigna el valor, nose si me has comprendido lo que estuve haciendo. Simplemente trate de leer un json que lo lee php y este me lo retorna. Saludos
El constructor de una clase, nunca puede ser asíncrono. Si necesitas crear un constructor asíncrono, debes utilizar un método estático:
static async create( ) {
const x = await ...
return new Mi clase(x)
}
Excelente!
Muchas gracias!
Mereces mas suscriptores, te vamos a hacer publicidad.
Muchas gracias! Esto es cuestión de ir poco a poco, queremos pensar que al final, el buen contenido tiene que terminar funcionando 🙂
muchas gracias por tanto trabajo, genial contenido. 😁 💕
Gracias a ti por el apoyo!
Gracias Pablo! Las propiedades static se pueden modificar??
Por poder, se puede perfectamente. Otra cosa será que no se deba hacer en ningún caso!
Buenas!! El video está superbien, como todos los que hacéis!
Pero siempre me entra una duda. ¿Porqué debería usar get dificultad() si puedo usar getDificultad() y lo mismo con los setters. Si puedo crear un método setDificultad(nuevaDif) que también compruebe si el valor introducido cumple una condición o dé un error, para qué queremos crear un set dificultad()??
Mil gracias!!!
La explicación es sencilla desde un punto de vista práctico.
Imaginemos que creamos un objeto partiendo de esa clase, y lo llamamos "obj". La forma de acceder sería la siguiente:
- get dificultad -> obj.dificultad
- getDificultad -> obj.getDificultad()
- set dificultad -> obj.dificultad = nuevaDificultad
- setDificultad -> obj.setDificultad(nuevaDificultad)
Como ves, al declarar los métodos como get y set, los conviertes en propiedades y puedes manipularlas como si fueran un atributo más.
¿Esto es bueno o malo? Depende bastante.
Te animaría a que te pasases un día por uno de nuestros directos de Twitch y nos hagas esta pregunta para poder contestarla como se merece, ya que me gustaría poder enseñarte la pantalla para explicarlo bien del todo, que por aquí es muy dificil... 😅
Muchas gracias por comentar!
Gracias amigo
A ti por vernos!
Tenés un nuevo subscriptor 👍🏻
Bienvenido!
Buena clase gracias
Buenísimo este video
Muchas gracias!
Buenas Pablo todo muy bien explicado. Aqui ando repasando conceptos. Una preguntilla entonces ¿Los métodos agregarLeccion() y eliminarUltimaLeccion() también son metodos setters? Entre otras muchas cosas a mi han enseñado que para distinguir un setter de un getter es que los getters siempre devuelven algo y los setters no, por tanto, los setters no tienen return. Muchas gracias, Saludos chicos :)
Muchas gracias!
Realmente en este caso lo que hacen los métodos agregar y eliminar lección, es modificar un atributo de la clase de forma controlada, por lo que se pueden considerar setters de este atributo (las lecciones), desde un enfoque puro de POO.
Pero aquí quiero recalcar que la definición que haces de getters y setters no es así del todo.
- Un getter es un método que permite acceder a un atributo de la clase
- Un setter es un método que permite establecer el valor de un atributo de la clase
Como ves, ambas definiciones hablan de UN atributo, no de varios.
Un método que acceda o modifique varios de estos atributos, no es ni un getter ni un setter, es simplemente un método.
@@DesarrolloUtil Ahora sí, claro como el agua. Mil gracias 👌🏻👌🏻👌🏻
venia con una frustracion terrible con este tema y las distintas formas que tiene javascript para generar clases, este video me despejo todas las dudas! Muchisimas gracias
Me alegro de que te sirva pero, aun así, no despejarás del todo tus dudas hasta que no hayas practicado mucho con ellas!
Puedo decir, sin temor a equivocarme, que este es un vídeo metódico y con mucha clase :)
Sobre todo con mucha clase jajaja
Excelente
Muchas gracias!
Perdón, pero... cuando se usan las clases en javascript?
Estoy aprendiendo pero no me queda claro el "cuando" usarlas.
Es una muy buena pregunta, pero en este caso no tiene que ver con JavaScript. Tienes que intentar entender qué es una clase, independientemente del lenguaje.
Como resumen rápido, podemos decir que utilizamos las clases cuando queremos definir un tipo de objetos, que van a tener una serie de atributos y métodos predefinidos.
Es bastante difícil intentar explicarlo en un comentario de UA-cam 😅
Si quieres te puedes pasar por un directo, o por Discord, y te lo explicamos allí (tienes los enlaces en la descripción)
yo veo algo raro ahi. titulo y dificultad y luego lecciones. cuando creas el objeto, como cargas las lecciones? porque tengo que entender que seria algo asi como [titulo1, dificu1,[lecci1, lecci2], titu2, difi2,[leci1, leci2, leci3,leci4]]] y, no s'e que es eso.
No entiendo muy bien a qué te refieres. Podrías indicarme en qué parte del video está?
@@DesarrolloUtil Ayudame con esto, para tener una referencia en el minuto 6 a titulo y dificultad le agregas un array pero no lo defines en el construct. no deber'ia ser construct (titu, dific, []) Tal vez, tengo esa idea y lo que explicas en el video apunta a otra cosa y a mi me llamo la atenci'on. no me mal interpretes no me refiero a que est'a mal. no digo eso.
me explico?
Segunda vuelta, continuamos para bingo…
muy buen vídeo pero hace mas grande el tamaño de letra y quita las barras de menú, estado , laterales y actividades
En cuanto al zoom, hemos procurado buscar una solución intermedia entre móvil, PC y poder trabajar agusto. Si le damos mucho más tamaño al texto, se nos complica bastante poder explicar.
Espero que lo entiendas!
Me parece tan patetico que estos lenguajes que presumen de ser tan dinamicos y reducir el codigo a lo mas simple y comodo posible, necesiten de un estupido "this." es algo realmente decepcionante, pero del que mas me sorprendio fue de python, tanto tabulado, def, sin ; y demas mamadas para hacerlo bien chulito y minimalista y me salen con el uso del fastidioso this, pense que era un lenguaje mas inteligente, que triste 😮💨
Pero tus tutos si son de los mejores hermano, puro alto nivel 😎👍
Ya existen las variables privadas en javascript y se declaran con #
El ejemplo de la escopeta me ha matao xDDDD
😂
La letra está muy chica, por favor agranda la letra en los tutoriales para quienes usamos lentes. Saludos
Lo hemos tenido en cuenta para los nuevos vídeos que estamos publicando. Muchas gracias!
@@DesarrolloUtil gracias piensa también que se pueda leer en notebook o tablet. Eso te hará llegar a más púbico también. No dejes tanto espacio libre es mejor agrandar el texto. Más parecido a un powerpoint. Saludos!
por que se pone this.titulo? y no solo titulo = titulo? , entiendo como funciona el this pero no porque se lo usa :/
this es una palabra clave que sirve para referenciar el nuevo objeto que estás creando en el constructor, y poder asignar valor a sus propiedades