CursosEmpresasBlogLiveConfPrecios

Recupera el Sistema de Comunicaciones

Clase 2 de 5 • Taller de Secretos Ocultos de JavaScript: Protección de Clases y Objetos

Contenido del curso

¡Salva al Capitán DC!

  • 1
    JavaScript POO para rescate espacial

    JavaScript POO para rescate espacial

    00:50 min
  • 2
    Recupera el Sistema de Comunicaciones

    Recupera el Sistema de Comunicaciones

    Viendo ahora
  • 3
    Vulnerabilidades del Sistema de Navegación

    Vulnerabilidades del Sistema de Navegación

    00:20 min
  • 4
    Historial de Cambios en el Motor

    Historial de Cambios en el Motor

    00:20 min
  • 5
    Recuperación de sistemas tras errores críticos

    Recuperación de sistemas tras errores críticos

    00:37 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Comentarios

      Guillermo DlToro.

      Guillermo DlToro.

      student•
      hace 3 años
        Himar Del rio plata

        Himar Del rio plata

        student•
        hace 3 años
      Juan Castro

      Juan Castro

      teacher•
      hace 3 años
        Luis Carlos Zapata García

        Luis Carlos Zapata García

        student•
        hace 3 años
        Juan Castro

        Juan Castro

        teacher•
        hace 3 años
      David Prado

      David Prado

      student•
      hace 3 años
      Felipe Moreno

      Felipe Moreno

      student•
      hace 3 años
      Brayan Estiben Rodallega Saavedra

      Brayan Estiben Rodallega Saavedra

      student•
      hace 3 años
      Andrés Schuster

      Andrés Schuster

      student•
      hace 3 años
      Victor Baruch Pazaran Jaimes

      Victor Baruch Pazaran Jaimes

      student•
      hace 3 años
      Santiago Quintero

      Santiago Quintero

      student•
      hace 3 años
      José Gerstner Javid

      José Gerstner Javid

      student•
      hace 3 años
      Jefferson Ramos

      Jefferson Ramos

      student•
      hace 3 años
      CRISTIAN DARIO AGUDELO PORRAS

      CRISTIAN DARIO AGUDELO PORRAS

      student•
      hace 3 años
      Hector Maluy Fernandez

      Hector Maluy Fernandez

      student•
      hace 3 años
      Andres Eduardo Maneiro Antunez

      Andres Eduardo Maneiro Antunez

      student•
      hace 3 años
      Bramucci Candela

      Bramucci Candela

      student•
      hace 3 años
        Juan Castro

        Juan Castro

        teacher•
        hace 3 años
        Bramucci Candela

        Bramucci Candela

        student•
        hace 3 años
      Carlos Mauro Cárdenas Fernández

      Carlos Mauro Cárdenas Fernández

      student•
      hace 3 años
      JUAN CAMILO CAMPO TANGARIFE

      JUAN CAMILO CAMPO TANGARIFE

      student•
      hace 3 años
        Juan Castro

        Juan Castro

        teacher•
        hace 3 años
      Ramses Acosta

      Ramses Acosta

      student•
      hace 3 años
        Juan Castro

        Juan Castro

        teacher•
        hace 3 años
      Daniel Alberto Cifuentes Castro

      Daniel Alberto Cifuentes Castro

      student•
      hace 3 años
        Daniel Alberto Cifuentes Castro

        Daniel Alberto Cifuentes Castro

        student•
        hace 3 años
        Miguel Angel Avendaño Aguirre

        Miguel Angel Avendaño Aguirre

        student•
        hace 2 años
      Javier Marin Ayza

      Javier Marin Ayza

      student•
      hace 3 años
        Juan Castro

        Juan Castro

        teacher•
        hace 3 años
        Javier Marin Ayza

        Javier Marin Ayza

        student•
        hace 3 años
      Jorge Franco Herrera

      Jorge Franco Herrera

      student•
      hace 2 años

      Entras al curso pensando que son puntos free al ver la introducción | Son ejercicios de js para resolver

      cover5 (1).jpg

      Jajajaja

      Esta clase puede ayudarles a resolver el problema: https://platzi.com/clases/2419-javascript-poo-intermedio/39821-instance-of-en-javascript-con-instancias-y-prototi/ :muscle:

      Pase la prueba, pero no me deja ver la clase 3 :confused: .

      Ya está disponible, Luis: https://platzi.com/clases/5943-secretos-javascript/58542-vulnerabilidades-del-sistema-de-navegacion/

      Muchas gracias por star pendiente. :D

      Que gran forma de probar lo aprendido!!.. super divertido Platzi!

      export class Satelite { constructor({ name, }) { this.name = name; this.messages = []; } send({ from, to, text }) { if ( (from instanceof Astronaut) && (to instanceof SpaceStation) && (to.team.includes(from.name)) ) { this.messages.push({ from: from.name, to: to.name, text, }); } }

      Listo, estuvo genial el desafío!🚀 +1

      function ValidateAstronaut(astronaut) { if (astronaut instanceof Astronaut) { return true; } return false; } function ValidateStation(station) { if (station instanceof SpaceStation) { return true; } return false; } function VefifyIfAstronautIsInStation(astronaut, station) { if (station.team.includes(astronaut.name)) { return true; } return false; } export function simulacion({ satelite, estacion, astronauta, texto }) { satelite.send({ from: astronauta, to: estacion, text: texto, }); return satelite.messages; } export class Astronaut { constructor({ name }) { this.name = name; } } export class SpaceStation { constructor({ name }) { this.name = name; this.team = []; } addTeamMember(newMember) { if (newMember instanceof Astronaut) { this.team.push(newMember.name); } } } export class Satelite { constructor({ name }) { this.name = name; this.messages = []; } send({ from, to, text }) { if (!ValidateAstronaut(from)) { return []; } if (!ValidateStation(to)) { return []; } if (!VefifyIfAstronautIsInStation(from, to)) { return []; } this.messages.push({ from: from.name, to: to.name, text, }); } }

      Interesante prueba, me gusta este tipo de cursos interactivos!

      MI solución:

      send({ from, to, text }) { if(from instanceof Astronaut && to instanceof SpaceStation &&to.team.includes(from.name)){ this.messages.push({ from: from.name, to: to.name, text, }); } }

      Solo modifiqué el método send de la clase Satelite para que validara todos lo indicado

      Me encantó esta temática!

      Tip: Al hacer una condicional pueden "concatenar" varias condiciones con el operador && el cual pide que todas estas devuelvan true para que se cumpla la condicion, ejemplo:

      if (condicion a && condicion b) { // Solo se ejecuta si a y b devuelven true }

      Pueden tener 2 o más condiciones según lo vean conveniente. 👍

      I feel good!!! 🎵🎵🎵

      Taller-POO1.png

      ¡Lo resolví! Lo único que hice fue modificar el método send de la clase Satelite.

      platzi.png

      Mi Solucion . . . . . . . . . . . . . . . . .

      Solo agregue una validacion en la clase Satelite

      export class Satelite { constructor({ name, }) { this.name = name; this.messages = []; } send({ from, to, text }) { const isAstronaut = from instanceof Astronaut const isSatelite = to instanceof SpaceStation const isTeamMember = to.team.some(member => member === from.name) if (isSatelite && isAstronaut && isTeamMember) { this.messages.push({ from: from.name, to: to.name, text, }) } } }

      Muy entretenido! Aunque sería genial que pudiéramos poner el código en pantalla completa.

      Muchas gracias por el feedback. Aquí lo puedes encontrar en pantalla completa: https://jshero.platzi.com/e/js/secretosjs-01 Vamos a trabajar en la posibilidad de agregarlo en pantalla completa de forma más intuitiva. :D

      Muchas gracias! Aviso que con el link puedo entrar al último challenge sin haberlo desbloqueado (creo que es un error, por que desde Platzi no puedo).

      Tarda un poco poer si esta bueno voy a revisar como resolverlo.

      Primera Fase completa!!! vamos Juan DC por a salvarte!! jajajaja

      Yo qué? El Capitán DC puede parecerse a mí pero no soy yo disfrazado de astronauta. :P

      hola, muy bueno el reto, pero que tecnologías, librerías, etc, usaron para implementar el sistema del reto? Como ejecuta el código en el Browser? Como se hicieron los test ?

      Mira: https://platzi.com/cursos/javascript-testing/

      Hola! ¿A alguien más le sale este error? Application error: a client-side exception has occurred (see the browser console for more information).

      Ya funciona!

      A MI, JUSTO HOY

      Hola no se si entiendo bien en que consiste...

      1. En guia hay 4 ejemplos para los 4 botones que hay en vista donde se pone lo que se va a introducir y la salida que queremos que ocurra. Es así?

      2. Para esto hay que modificar el código del editor exercise.js

      3. En vista estará lo cargado, es decir las matrices que tenemos en memoria (astronautas, estaciones espaciales y satelite) y tenemos los botones que nos arrojarán un resultado según las modificaciones hechas en exercise.js. Sigo bien?

      4. Y supongo que correr pruebas será que cuando le demos al botón en la pestaña pruebas aparecerá si esta bien o no... si valida todo correcto pasamos el reto. Y sino supongo que arrojaría una pista de donde hay error.

      5. Es que como veo que hay 3 intentos antes de toquetear quería asegurarme que entendí como va la cosa.

      1. Correcto
      2. Correcto
      3. Sigues bien
      4. Correcto, aunque más que darte una pista de dónde está el error, te mostrará que resultado se esperaba y cuál se obtuvo
      5. No solo tienes 3 intentos, sino que a los 3 intentos se te habilitará un botón para ver la solución oficial, pero es tu decisión si tomas esa ayuda o no, en realidad puedes probar las veces que quieras

      Gracias JuanDC

      Esta fue mi solución pero no puedo correr las pruebas.