1
00:00:00,360 --> 00:00:05,490
Hola, bienvenidos a la sección sobre programación orientada a objetos, esto es lo que haremos en esta sección.

2
00:00:06,150 --> 00:00:12,000
Vamos a definir qué programación orientada a objetos o O. PAG. es y volver a visitar la nueva palabra

3
00:00:12,000 --> 00:00:13,630
clave y entenderla con bastante profundidad.

4
00:00:13,860 --> 00:00:18,990
Luego usaremos funciones de constructor para reducir la duplicación de código y refactorizar nuestros constructores usando

5
00:00:18,990 --> 00:00:20,100
call y apply.

6
00:00:20,400 --> 00:00:25,450
Si no ha visto una serie de palabras clave, le recomiendo que lo haga primero.

7
00:00:25,590 --> 00:00:30,840
Todo en estos videos construirá todo nuestro conocimiento de la palabra clave this, así como invocar

8
00:00:30,990 --> 00:00:31,920
apply y bind.

9
00:00:31,920 --> 00:00:32,800
Aquí vamos.

10
00:00:33,330 --> 00:00:35,450
Entonces, ¿qué es la programación orientada a objetos?

11
00:00:35,460 --> 00:00:41,970
En pocas palabras, es un modelo de programación basado en la idea de objetos y planos que crean

12
00:00:42,480 --> 00:00:47,580
objetos que llamamos clases de planos y los objetos que creamos de nuestras clases

13
00:00:47,670 --> 00:00:50,650
se denominan tradicionalmente instancias en programación orientada a objetos.

14
00:00:50,790 --> 00:00:56,220
Nos esforzamos por hacer que nuestras clases sean abstractas y modulares para que podamos reutilizar las clases fácilmente y

15
00:00:56,220 --> 00:00:58,680
compartirlas entre todas las partes de una aplicación.

16
00:00:58,710 --> 00:01:04,140
Javascript no tiene soporte integrado para clases a diferencia de los lenguajes como Python Ruby y Java.

17
00:01:04,370 --> 00:01:10,980
Podemos imitar el comportamiento de las clases al usar Javascript tiene funciones y objetos antes de ver cómo usar las funciones

18
00:01:10,980 --> 00:01:13,910
para imitar el comportamiento de las clases de agua.

19
00:01:14,040 --> 00:01:17,610
Veamos por qué esta técnica de programación es bastante útil.

20
00:01:17,610 --> 00:01:22,040
Imagina por un segundo que eres un arquitecto y que tienes la tarea de construir 4 casas.

21
00:01:22,230 --> 00:01:27,440
Cada casa tendrá varios cuartos de baño y una cantidad de pies cuadrados.

22
00:01:27,450 --> 00:01:30,690
Lo primero que se me ocurre es hacer un objeto para cada casa.

23
00:01:30,690 --> 00:01:32,010
Necesitamos hacer.

24
00:01:32,190 --> 00:01:37,710
una vez que comenzamos a tener que crear más que unos pocos objetos, las cosas se vuelven muy repetitivas y tediosas.

25
00:01:37,830 --> 00:01:38,940
Parece bastante razonable, pero

26
00:01:39,510 --> 00:01:43,830
Vamos a refactorizar este código leyendo un modelo de cómo debe ser una casa.

27
00:01:44,100 --> 00:01:49,380
Hagamos una función que cuando usemos construiremos un objeto de casa en javascript.

28
00:01:49,380 --> 00:01:52,650
Llamamos funciones de constructor de funciones especiales.

29
00:01:52,650 --> 00:01:56,100
Ahora veamos cómo se ve nuestra función de constructor para una casa.

30
00:01:56,340 --> 00:01:59,790
Desde el primer momento, vemos que el nombre de la función está en mayúscula.

31
00:01:59,790 --> 00:02:01,950
Esto no cambia nada sobre la función.

32
00:02:02,040 --> 00:02:06,960
Es solo una mejor práctica y convención para que otros desarrolladores sepan que esta es una función de constructor.

33
00:02:07,920 --> 00:02:11,250
Lo siguiente que vemos es que la palabra clave está de vuelta.

34
00:02:11,250 --> 00:02:12,900
Justo cuando creías que habías terminado con eso.

35
00:02:13,050 --> 00:02:15,680
Si no ha querido esa serie, regrese y hágalo.

36
00:02:15,840 --> 00:02:20,110
De lo contrario, el resto de la serie será bastante confuso en esta función.

37
00:02:20,110 --> 00:02:25,170
Estamos adjuntando propiedades a la palabra clave, de alguna manera esperamos que cuando llamemos a

38
00:02:25,410 --> 00:02:30,170
la función, un nuevo objeto nos sea devuelto con los valores especificados en esta función.

39
00:02:30,190 --> 00:02:32,070
Sin embargo, falta algo aquí.

40
00:02:32,070 --> 00:02:37,140
variable de la casa, la estamos configurando igual al resultado de la llamada a la función de la casa.

41
00:02:37,140 --> 00:02:38,070
Si miramos la primera

42
00:02:38,070 --> 00:02:41,460
El problema es que la función de nuestra casa no devuelve nada.

43
00:02:41,550 --> 00:02:43,840
Por lo tanto, la función volverá indefinida.

44
00:02:44,130 --> 00:02:45,690
Entonces, ¿cómo solucionamos este problema?

45
00:02:45,690 --> 00:02:49,710
La respuesta se encuentra en otra palabra clave especial que explorará en el siguiente video.

46
00:02:49,770 --> 00:02:50,820
La nueva palabra clave

47
00:02:50,880 --> 00:02:51,650
Te veo allí.
