Autor
|
Tema: Ejercicio javascript. (Leído 6,283 veces)
|
vistur
Desconectado
Mensajes: 6
|
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
Mensajes: 397
F0r3v3R NeWbI3
|
¿Quieres más ejercicios? empieza a ver que ayuda necesitas
|
|
|
En línea
|
|
|
|
Tachikomaia
Desconectado
Mensajes: 1.460
Hackentifiko!
|
Publica el código o pseudocódigo que tengas hecho.
|
|
|
En línea
|
|
|
|
vistur
Desconectado
Mensajes: 6
|
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
Mensajes: 397
F0r3v3R NeWbI3
|
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í class Coche: def __init__(self, peso, potencia, marca): self.peso = peso self.potencia = potencia self.marca = marca ...
para que si creas una instancia, la inicializas con los valores que asignarás a variables de la clase. 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
Mensajes: 6
|
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
|
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: class Coche { constructor(peso, potencia, marca) { var peso, potencia, marca peso = peso potencia = potencia marca = marca this.getPeso = ()=>peso } } var myCoche = new Coche(1500, 150, "seat") myCoche.getPeso() // 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: class Coche { constructor(peso, potencia, marca) { this._peso = peso this._potencia = potencia this._marca = marca } set peso(peso) { this._peso = peso } get peso() { return this._peso } } var myCoche = new Coche(1500, 150, "seat") myCoche.peso // 1500 myCoche.peso = 2000 myCoche.peso // 2000
Al final dependerá mucho del contexto de tu ejercicio
|
|
|
En línea
|
|
|
|
MinusFour
|
var peso, potencia, marca peso = peso potencia = potencia marca = marca
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: class Coche { constructor(peso, potencia, marca) { this._peso = peso this._potencia = potencia this._marca = marca } set peso(peso) { this._peso = peso } get peso() { return this._peso } }
Pero ahí las propiedades no son privadas realmente. Puedes tener una mezcla de los dos: class Coche { constructor(peso, potencia, marca){ Object.defineProperty(this, 'peso', { get() { return peso; }, set(pesoNuevo) { peso = pesoNuevo } }); // lo mismo para las otras dos propiedades } }
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. class Coche { #peso; #potencia; #marca; constructor(peso, potencia, marca){ this.#peso = peso; this.#potencia = potencia; this.#marca = marca; } get peso(){ return this.#peso; } set peso(peso){ this.#peso = peso; } /* y así para el resto de las otras propiedades */ }
|
|
|
En línea
|
|
|
|
vistur
Desconectado
Mensajes: 6
|
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: class Coche { constructor(peso, potencia, marca){ Object.defineProperty(this, 'peso', { get() { return peso; }, set(pesoNuevo) { peso = pesoNuevo } }); // lo mismo para las otras dos propiedades } }
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. class Coche { #peso; #potencia; #marca; constructor(peso, potencia, marca){ this.#peso = peso; this.#potencia = potencia; this.#marca = marca; } get peso(){ return this.#peso; } set peso(peso){ this.#peso = peso; } /* y así para el resto de las otras propiedades */ }
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Resuelto] Ayuda, para un ejercicio de javascript para la facultad.
Desarrollo Web
|
MaxiGanar
|
5
|
4,073
|
23 Julio 2015, 20:37 pm
por MinusFour
|
|
|
ejercicio para novatos de javascript
Desarrollo Web
|
AlexKurban
|
6
|
4,038
|
2 Agosto 2015, 01:39 am
por AlexKurban
|
|
|
Ejercicio javascript - Nivel Medio
Ejercicios
|
RaloGomez
|
1
|
4,027
|
16 Octubre 2016, 17:39 pm
por surfdata
|
|
|
Ayuda javascript ejercicio de estudiante
Java
|
masterkein
|
3
|
3,257
|
12 Mayo 2018, 16:08 pm
por Serapis
|
|
|
ejercicio javascript. Presupuesto
Ejercicios
|
behindfa21
|
4
|
6,319
|
2 Octubre 2022, 05:53 am
por behindfa21
|
|