En esta lección se introduce el concepto clase.
class
Hola. Soy vl.
6
class Cl01
1 class Cl01 { constructor(b) { this.a = b } mensaje(c) { console.log(c + this.a) } } const a = new Cl01(4) a.mensaje(2)
1Cl01 | 11 |
---|
name | Cl01 |
---|
new
1 class Cl01 { constructor(b) { this.a = b } mensaje(c) { console.log(c + this.a) } } const a =2new Cl01(4) a.mensaje(2)
1Cl01 | 11 |
---|
name | Cl01 |
---|
Se crea un objeto de la clase Cl01, sin ninguna property y se le asigna un identificador, que en este caso es 2.
Cl01(4)
1 class Cl01 { constructor(b) { this.a = b } mensaje(c) { console.log(c + this.a) } } const a =2new3Cl01(4) a.mensaje(2)
1Cl01 | 11 |
---|---|
3congela |
name | Cl01 |
---|
3new Cl01(4)
2 Cl01(4)
constructor(b)
1 class Cl01 { 4 constructor(b) { this.a = b } mensaje(c) { console.log(c + this.a) } } const a =2new3Cl01(4) a.mensaje(2)
name | Cl01 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
this.a = b
1 class Cl01 { 4 constructor(b) { 5 this.a = b } mensaje(c) { console.log(c + this.a) } } const a =2new3Cl01(4) a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
}
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } mensaje(c) { console.log(c + this.a) } } const a =2new3Cl01(4) a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
Termina el registro de activación y devuelve el valor de this, que es 2.
new Cl01(4) → 2
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } mensaje(c) { console.log(c + this.a) } } const a =2new3Cl01(4)7→2 a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
a = 2
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } mensaje(c) { console.log(c + this.a) } } 8 const a =2new3Cl01(4)7→2 a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
Crea la constante de referencia a en el stack, cuyo valor es el devuelto por el constructor.
a.mensaje(2)
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } mensaje(c) { console.log(c + this.a) } } 8 const a =2new3Cl01(4)7→2 9 a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
9a.mensaje(2)
2.mensaje(2)
a.mensaje
.
mensaje(c) {
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } 10 mensaje(c) { console.log(c + this.a) } } 8 const a =2new3Cl01(4)7→2 9 a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
9a.mensaje(2)
2.mensaje(2)
10this.mensaje(c)
c + this.a
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } 10 mensaje(c) { console.log(11c + this.a) } } 8 const a =2new3Cl01(4)7→2 9 a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
9a.mensaje(2)
2.mensaje(2)
10this.mensaje(c)
11c + this.a
2 + 4
6
console.log(c + this.a)
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } 10 mensaje(c) { 12 console.log(11c + this.a) } } 8 const a =2new3Cl01(4)7→2 9 a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
9a.mensaje(2)
2.mensaje(2)
10this.mensaje(c)
11c + this.a
2 + 4
6
Se muestra el resultado de la expresión 11.
}
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } 10 mensaje(c) { 12 console.log(11c + this.a) 13 } } 8 const a =2new3Cl01(4)7→2 9 a.mensaje(2)
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
9a.mensaje(2)
2.mensaje(2)
10this.mensaje(c)
11c + this.a
2 + 4
6
1 class Cl01 { 4 constructor(b) { 5 this.a = b 6 } 10 mensaje(c) { 12 console.log(11c + this.a) 13 } } 8 const a =2new3Cl01(4)7→2 9 a.mensaje(2)14
name | Cl01 |
---|
5a | 54 |
---|
3new Cl01(4)
2 Cl01(4)
4this Cl01(b)
5this.a = b
2 .a = 4
9a.mensaje(2)
2.mensaje(2)
10this.mensaje(c)
11c + this.a
2 + 4
6
Descongela el último registro de activación congelado en el stack.
Como no hay más instrucciones, Elimina el registro de activación y termina el programa.
Hola. Clase QK. Hola. Instancia qkita1 Hola. Instancia qkita2
En JavaScript por el momento todos los miembros de una clase son públicos, pero se pueden usar convenciones para indicar niveles de acceso.
Como hay varias convenciones, usaremos las del compilador de TypeScript, que Visual Studio Code puede usar para validar el acceso.
@public
Es el valor predefinido e indica que el miembro puede usarse desde cualquier parte del código.
@private
_miembro
El miembro solo debe usarse dentro de la clase que lo define.
@protected
El miembro solo debe usarse dentro de la clase que lo define y subclases.
pp pp juega
En esta lección se definieron los siguientes conceptos:
class
Instancia de clase
Creación de instancia de clase
getter
setter