-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path24-clases.js
More file actions
81 lines (53 loc) · 1.72 KB
/
24-clases.js
File metadata and controls
81 lines (53 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
class Persona {
constructor(nombre, apellido, altura) {
this.nombre = nombre;
this.apellido = apellido;
this.altura = altura;
}
saludar(responderSaludo) {
console.log(`Hola mi nombre es ${this.nombre} ${this.apellido}`);
if (responderSaludo) {
responderSaludo(this.nombre, this.apellido, false);
}
}
soyAlto() {
return this.altura >= 1.8;
}
}
class Desarrollador extends Persona {
constructor(nombre, apellido, altura) {
super(nombre, apellido, altura);
}
saludar(responderSaludo) {
console.log(`Hola mi nombre es ${this.nombre} ${this.apellido} y soy desarrollador`);
if (responderSaludo) {
responderSaludo(this.nombre, this.apellido, true);
}
}
}
function responderSaludo(nombre, apellido, esDev) {
console.log(`Buen dia ${nombre} ${apellido}`);
if(esDev) {
console.log(`Excelente, eres desarrollador`);
}
}
class Estudiante {
constructor(nombre, apellido, calificacion){
this.nombre = nombre;
this.apellido = apellido;
this.calificacion = calificacion;
}
saludar(responderSaludo) {
//Desestructuracion de la funcion
var {nombre, apellido, calificacion} = this;
console.log(`Hola mi nombre es ${nombre} ${apellido} y tengo calificacion de ${calificacion}`);
if(responderSaludo){
responderSaludo(this.nombre, this.apellido, false)
}
}
}
var ivan = new Desarrollador('Ivan', 'Espadas', 1.82);
var juan = new Persona('Juan', 'Perez', 1.79);
var pedro = new Estudiante('Pedro', 'Gomez', 9.5);
ivan.saludar(responderSaludo);
pedro.saludar(responderSaludo);