Saltar al contenido principal
Codigo Heroe
Tarea anterior
Objetos24/25
A la lista de tareas
  1. 1. Una función para lanzar los dados
  2. 2. Pasar los datos de los participantes
  3. 3. Sumar puntos con +=
  4. 4. Crear un objeto
  5. 5. Leer propiedades con la notación de punto
  6. 6. Un arreglo de objetos
  7. 7. Modificar las propiedades de un objeto
  8. 8. Referencias a objetos
  9. 9. Agrupar las reglas en un objeto
  10. 10. Un ciclo para los intentos
  11. 11. Una función para encontrar ganadores
  12. 12. Recorrer los objetos de un arreglo
  13. 13. Buscar la puntuación máxima
  14. 14. Agregar ganadores con push
  15. 15. Detectar un empate general
  16. 16. Construir el mensaje de los ganadores
  17. 17. Agregar participantes y cambiar las reglas
  18. 18. Ajustar el mensaje con condiciones
  19. 19. Devolver un objeto desde una función
  20. 20. Crear y llamar a un método
  21. 21. Leer propiedades desde un método
  22. 22. Un objeto como diccionario
  23. 23. Notación de corchetes
  24. 24. El contexto de la llamada y this
  25. 25. Crear otro objeto con la misma función
Siguiente tarea
  • Matriz de skills
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

El contexto de la llamada y this

¡El programa ya hace todo lo que necesitamos! Solo queda comentar un detalle.

Dentro de los métodos accedemos a las propiedades con computer.propiedad. ¿Qué pasará si luego cambiamos el nombre de la variable? Tendríamos que reemplazar computer en todas esas expresiones. La pereza es una de las grandes cualidades de quien programa: no queremos reescribir tantos nombres. Por suerte existe la palabra clave this.

En inglés, this significa «esto». Cuando llamamos a un método de la forma objeto.metodo(), this se refiere al objeto que está antes del punto.

Para usarlo en estos métodos basta con sustituir el nombre del objeto por la palabra clave. En lugar de objeto.propiedad, escribimos this.propiedad.

let cat = {
  name: 'Rodolfo',

  introduce: function () {
    console.log('¡Miau! ¡Soy el gato ' + this.name + '!');
  }
};

cat.introduce(); // Muestra: ¡Miau! ¡Soy el gato Rodolfo!

El objeto al que se refiere this se llama contexto de la llamada.

Un detalle importante: en estos métodos, el valor de this se determina al llamar a la función, según cómo se la llame.

this tiene más usos y particularidades que conoceremos en otros capítulos. Por ahora cambiaremos los accesos a las propiedades dentro de los métodos de computer.

  • script.js
JavaScript
let processorPrice = { 'i5': 5000, 'i7': 10000 }; let displayPrice = { 13: 5000, 15: 10000 }; let memoryPrice = { 8: 3000, 16: 4000 }; let buildComputer = function (memory, display, processor) { let computer = { basicPrice: 5000, processor: processor, display: display, memory: memory, getDescription: function () { return 'computadora con procesador ' + computer.processor + ', pantalla de ' + computer.display + ' pulgadas, memoria RAM de ' + computer.memory + ' GB'; }, getPrice: function () { return computer.basicPrice + processorPrice[computer.processor] + displayPrice[computer.display] + memoryPrice[computer.memory]; } }; return computer; }; let myComputer = buildComputer(8, 13, 'i7'); console.log('En el carrito: ' + myComputer.getDescription() + ' con un precio de ' + myComputer.getPrice());
Consola

El código ha cambiado, haga clic en "Ejecutar" o active la ejecución automática.

Resultado de la ejecución

ObjetivosRealizado
0
    1. En todos los métodos, reemplaza los accesos a las propiedades y los métodos de computer por accesos mediante this.
    2. Dentro de buildComputer, cambia el nombre de computer a customComputer. Recuerda devolver el objeto con su nuevo nombre.
    Codigo Heroe

    © 2023-2026, codigoheroe.com