elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Ejercicio javascript.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio javascript.  (Leído 5,577 veces)
vistur

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Ejercicio javascript.
« en: 28 Febrero 2022, 12:59 pm »

Tengo el siguiente ejercicio:

Crea un archivo "coche.js" que implemente una clase Coche con un constructor con las siguientes características:

    Debe recibir 3 parámetros: peso, potencia y marca.
    Peso y potencia deben ser números, y marca una String.
    La clase debe tener variables de clase en las que se almacene el valor de los parámetros    pasados al constructor.

La clase Coche debe ser exportada como un módulo para poder ser usada desde otros archivos javascript.


¿Alguien amable me hecha una mano?


En línea

.xAk.


Desconectado Desconectado

Mensajes: 397


F0r3v3R NeWbI3


Ver Perfil WWW
Re: Ejercicio javascript.
« Respuesta #1 en: 28 Febrero 2022, 16:14 pm »

¿Quieres más ejercicios? empieza a ver que ayuda necesitas


En línea


Tachikomaia


Desconectado Desconectado

Mensajes: 1.214


Superhacker (es broma xD )


Ver Perfil
Re: Ejercicio javascript.
« Respuesta #2 en: 28 Febrero 2022, 19:39 pm »

Publica el código o pseudocódigo que tengas hecho.
En línea

vistur

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Ejercicio javascript.
« Respuesta #3 en: 28 Febrero 2022, 23:06 pm »

Publica el código o pseudocódigo que tengas hecho.


Yo creo que se debe hacer así:

class Coche = {
 peso: 1500,
  potencia: 150,
  marca: "Seat"
}

Pero cuando dice: La clase debe tener variables de clase en las que se almacene el valor de los parámetros pasados al constructor, pues esto ya me descoloca...
En línea

.xAk.


Desconectado Desconectado

Mensajes: 397


F0r3v3R NeWbI3


Ver Perfil WWW
Re: Ejercicio javascript.
« Respuesta #4 en: 28 Febrero 2022, 23:48 pm »

La clase debe tener variables de clase en las que se almacene el valor de los parámetros pasados al constructor ...

también estoy empezando en python y creo que se refiere a algo así

Código
  1. class Coche:
  2. def __init__(self, peso, potencia, marca):
  3. self.peso = peso
  4. self.potencia = potencia
  5. self.marca = marca
  6. ...

para que si creas una instancia, la inicializas con los valores que asignarás a variables de la clase.

Código
  1. unCoche = Coche ( 1500, 150, "Seat" )

=== edit ===
javascript, si lo pone bien claro javascript. No se porque digo python. No entiendo en que estaría yo pensando.
« Última modificación: 2 Marzo 2022, 08:10 am por .xAk. » En línea


vistur

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Ejercicio javascript.
« Respuesta #5 en: 1 Marzo 2022, 18:09 pm »

Al final he podido sacar el código, pero esto soy incapaz:


Modifica el archivo del ejercicio anterior para que los atributos sean privados y tengan sus correspondientes getters y setters.


help me!
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.067



Ver Perfil
Re: Ejercicio javascript.
« Respuesta #6 en: 2 Marzo 2022, 05:16 am »

Ese enunciado es algo raro, en javascript no puedes crear nada privado a no ser que se usen Closures o alguna cosa todavía más rara XD, el problema de hacerlo así es que no veo manera de usar los Setters y Getters nativos, por ejemplo:

Código
  1. class Coche {
  2.  constructor(peso, potencia, marca) {
  3.  
  4.    var peso, potencia, marca
  5.    peso = peso
  6.    potencia = potencia
  7.    marca = marca
  8.  
  9.    this.getPeso = ()=>peso
  10.  }
  11. }
  12.  
  13. var myCoche = new Coche(1500, 150, "seat")
  14.  
  15. myCoche.getPeso()
  16. // 1500

También puede referirse a usar solo atributos privados por convención anteponiéndoles el subguión, pero esto es solo por convención y no son realmente privados, yo me inclinaría más por esto para darle más sentido a todo el enunciado:

Código
  1. class Coche {
  2.  
  3.  constructor(peso, potencia, marca) {
  4.    this._peso = peso
  5.    this._potencia = potencia
  6.    this._marca = marca    
  7.  }
  8.  
  9.  set peso(peso) {
  10.    this._peso = peso
  11.  }
  12.  
  13.  get peso() {
  14.    return this._peso
  15.  }
  16.  
  17. }
  18.  
  19. var myCoche = new Coche(1500, 150, "seat")
  20.  
  21. myCoche.peso
  22. // 1500
  23.  
  24. myCoche.peso = 2000
  25.  
  26. myCoche.peso
  27. // 2000

Al final dependerá mucho del contexto de tu ejercicio
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Ejercicio javascript.
« Respuesta #7 en: 2 Marzo 2022, 06:25 am »

Código
  1.    var peso, potencia, marca
  2.    peso = peso
  3.    potencia = potencia
  4.    marca = marca
  5.  

Esto no hace nada. La declaración inicial no crea nuevas variables. Tendrían que llamarse de manera diferente. Pero la idea es correcta solo que el ejercicio pide setters y getters.

También puede referirse a usar solo atributos privados por convención anteponiéndoles el subguión, pero esto es solo por convención y no son realmente privados, yo me inclinaría más por esto para darle más sentido a todo el enunciado:

Código
  1. class Coche {
  2.  
  3.  constructor(peso, potencia, marca) {
  4.    this._peso = peso
  5.    this._potencia = potencia
  6.    this._marca = marca    
  7.  }
  8.  
  9.  set peso(peso) {
  10.    this._peso = peso
  11.  }
  12.  
  13.  get peso() {
  14.    return this._peso
  15.  }
  16.  
  17. }

Pero ahí las propiedades no son privadas realmente.

Puedes tener una mezcla de los dos:

Código
  1. class Coche {
  2.    constructor(peso, potencia, marca){
  3.        Object.defineProperty(this, 'peso', {
  4.            get() { return peso; },
  5.            set(pesoNuevo) { peso = pesoNuevo }
  6.         });
  7.         // lo mismo para las otras dos propiedades
  8.    }
  9. }

Por último, javascript si que tiene manera de encapsular código de manera privada por encima de sus entornos léxicos, es una propuesta que lleva unos 5 años ya y apenas se publica en la especificación (este año). Pero los navegadores modernos ya entienden esta nueva adición.

Código
  1. class Coche {
  2.    #peso; #potencia; #marca;
  3.    constructor(peso, potencia, marca){
  4.        this.#peso = peso;
  5.        this.#potencia = potencia;
  6.        this.#marca = marca;
  7.    }
  8.  
  9.    get peso(){
  10.        return this.#peso;
  11.    }
  12.  
  13.    set peso(peso){
  14.        this.#peso = peso;
  15.    }
  16.  
  17.    /* y así para el resto de las otras propiedades */
  18. }
En línea

vistur

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Ejercicio javascript.
« Respuesta #8 en: 8 Marzo 2022, 13:26 pm »

Esto no hace nada. La declaración inicial no crea nuevas variables. Tendrían que llamarse de manera diferente. Pero la idea es correcta solo que el ejercicio pide setters y getters.

Pero ahí las propiedades no son privadas realmente.

Puedes tener una mezcla de los dos:

Código
  1. class Coche {
  2.    constructor(peso, potencia, marca){
  3.        Object.defineProperty(this, 'peso', {
  4.            get() { return peso; },
  5.            set(pesoNuevo) { peso = pesoNuevo }
  6.         });
  7.         // lo mismo para las otras dos propiedades
  8.    }
  9. }

Por último, javascript si que tiene manera de encapsular código de manera privada por encima de sus entornos léxicos, es una propuesta que lleva unos 5 años ya y apenas se publica en la especificación (este año). Pero los navegadores modernos ya entienden esta nueva adición.

Código
  1. class Coche {
  2.    #peso; #potencia; #marca;
  3.    constructor(peso, potencia, marca){
  4.        this.#peso = peso;
  5.        this.#potencia = potencia;
  6.        this.#marca = marca;
  7.    }
  8.  
  9.    get peso(){
  10.        return this.#peso;
  11.    }
  12.  
  13.    set peso(peso){
  14.        this.#peso = peso;
  15.    }
  16.  
  17.    /* y así para el resto de las otras propiedades */
  18. }



Estupendo! Me he dado cuenta que más o menos después de mucho leer la idea la tenía, pero sin duda me ha ayudado muchísimo lo que me has escrito...

¿Crees que sería posible poderte tener en discord? sinceramente me vendría increíble poder hablar de mis dudas con alguien y así no quedarme estancado
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Resuelto] Ayuda, para un ejercicio de javascript para la facultad.
Desarrollo Web
MaxiGanar 5 3,687 Último mensaje 23 Julio 2015, 20:37 pm
por MinusFour
ejercicio para novatos de javascript
Desarrollo Web
AlexKurban 6 3,701 Último mensaje 2 Agosto 2015, 01:39 am
por AlexKurban
Ejercicio javascript - Nivel Medio
Ejercicios
RaloGomez 1 3,795 Último mensaje 16 Octubre 2016, 17:39 pm
por surfdata
Ayuda javascript ejercicio de estudiante
Java
masterkein 3 3,070 Último mensaje 12 Mayo 2018, 16:08 pm
por Serapis
ejercicio javascript. Presupuesto
Ejercicios
behindfa21 4 5,707 Último mensaje 2 Octubre 2022, 05:53 am
por behindfa21
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines