Skip to content

Commit db05c97

Browse files
committed
Prototypes / Herencia
1 parent 8967d67 commit db05c97

File tree

7 files changed

+88
-29
lines changed

7 files changed

+88
-29
lines changed

README.md

Lines changed: 85 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -394,24 +394,19 @@ console.log(arreglo);
394394
>> Sabemos que podemos tener `function` y tener varias funciones dentro de ellas mismas de las cuales podemos crear variables con sus propiedades `objects` del tipo de la `function`, pero que tal si necesitaramos alguna de las funciones que estan dentro de los objetos, darle mantenimiento a nuestro codigo.
395395
396396
```js
397-
function Casa(calle,numero,casa){
397+
function Casa(calle,numero){
398398
this.calle = calle;
399399
this.numero = numero;
400-
this.casa = casa;
401-
402-
this.tipoCasa = function(){
403-
404-
let tipo;
405-
if(this.casa = 1){
406-
tipo = 'Unifamiliar';
407-
} else if(this.casa = 2){
408-
tipo = 'Duplex';
409-
}else{
410-
tipo = 'Departamento';
411-
}
412400

401+
this.tipoCasa = function(casa){
402+
if(casa === 1){
403+
return 'Unifamiliar';
404+
} else if(casa === 2){
405+
return 'Duplex';
406+
}else{
407+
return 'Departamento';
408+
}
413409
}
414-
415410
}
416411

417412
const miCasa = new Casa('San Pedro',220);
@@ -428,22 +423,19 @@ console.log(arreglo);
428423
># **"Un objeto hereda sus funciones del `prototype`"**.
429424
430425
```js
431-
function Casa(calle,numero){
426+
function Casa(calle,numero,casa){
432427
this.calle = calle;
433428
this.numero = numero;
434429
}
435430

436-
Casa.prototype.tipoCasa = function(casa){
437-
this.casa = casa;
438-
let tipo;
439-
if(this.casa = 1){
440-
tipo = 'Unifamiliar';
441-
} else if(this.casa = 2){
442-
tipo = 'Duplex';
443-
}else{
444-
tipo = 'Departamento';
445-
}
446-
431+
Casa.prototype.tipoCasa = function(casa){
432+
if(casa === 1){
433+
return 'Unifamiliar';
434+
} else if(casa === 2){
435+
return 'Duplex';
436+
}else{
437+
return 'Departamento';
438+
}
447439
}
448440

449441
const miCasa = new Casa('San Pedro',220);
@@ -453,6 +445,71 @@ function Casa(calle,numero){
453445

454446
### Consola (Google Chrome)
455447

456-
![Console_Result_2](prototypes/P_3.png)
448+
![Console_Result_3](prototypes/P_3.png)
449+
450+
>En la imagen podemos observar que ya nuestra `function` es ahora parte del `__proto__` esto quiere decir que ya es parte de las funciones de nuestro objeto.
451+
452+
![Console_Result_4](prototypes/P_4.png)
453+
454+
>Ahora invocamos el `function` pasando el parametro de acuerdo a las opciones y obtendremos el resultado.
455+
456+
```js
457+
function Familia(numeroDeIntegrantes,mascotas){
458+
this.numeroDeIntegrantes = numeroDeIntegrantes;
459+
this.mascotas = mascotas;
460+
}
461+
462+
Familia.prototype.tipoCasa = function(casa){
463+
if(casa === 1){
464+
return 'Unifamiliar';
465+
} else if(casa === 2){
466+
return 'Duplex';
467+
}else{
468+
return 'Departamento';
469+
}
470+
}
471+
472+
const familia = new Familia('5 Integrantes',2);
473+
474+
console.log(familia);
475+
```
476+
477+
![Console_Result_4](prototypes/P_4.1.png)
478+
479+
>Ahora que tenemos la `function` en el `__proto__` podemos hacerlo parte de otra función.
480+
481+
482+
># Herencia
483+
>>Digamos que necesitamos utilizar las variables de nuestra `function` llamada *Casa* en nuestra nueva `function` llamada *Familia*, para esto haremos lo siguiente
484+
485+
```js
486+
function Casa(calle,numero){
487+
this.calle = calle;
488+
this.numero = numero;
489+
}
490+
491+
Casa.prototype.tipoCasa = function(casa){
492+
if(casa === 1){
493+
return 'Unifamiliar';
494+
} else if(casa === 2){
495+
return 'Duplex';
496+
}else{
497+
return 'Departamento';
498+
}
499+
}
500+
501+
function Familia(calle,numero,numeroDeIntegrantes,mascotas){
502+
Casa.call(this,calle,numero);
503+
this.numeroDeIntegrantes = numeroDeIntegrantes;
504+
this.mascotas = mascotas;
505+
}
506+
507+
508+
509+
510+
const familia = new Familia('San Pedro',19,'5 Integrantes',2);
511+
512+
console.log(familia);
513+
```
457514

458-
>En la imagen podemos observar que ya nuestra `function` es ahora parte del `__proto__` esto quiere decir que ya es parte de las funciones de nuestro objeto, vemos tambien que nuestro codigo se ve mejor.
515+
![Console_Result_4](prototypes/P_5.png)

prototypes/P_2.png

23.8 KB
Loading

prototypes/P_3.png

5.64 KB
Loading

prototypes/P_4.1.png

89.8 KB
Loading

prototypes/P_4.png

45.2 KB
Loading

prototypes/P_5.png

68.3 KB
Loading

prototypes/js.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
const arreglo = [];
22

3-
console.log(arreglo);
3+
console.log(arreglo);
4+
5+

0 commit comments

Comments
 (0)