Introducción A JavaScript Orientado A Objetos
Introducción A JavaScript Orientado A Objetos
Terminología
Clase
Objeto
Método
Constructor
Herencia
Encapsulamiento
Una Clase sólo define las características del Objeto, un Método sólo define cómo
se ejecuta el Método.
Abstracción
Polimorfismo
// namespace global
Objetos básicos
JavaScript tiene varios objetos incluidos en su núcleo, como Math, Object, Array y
String. El siguiente ejemplo muestra cómo utilizar el objeto Math para obtener un número
al azar mediante el uso de su método random().
Objetos personalizados
La clase
Para crear un nuevo ejemplo de un objeto obj utilizamos la declaración new obj ,
asignando el resultado (que es de tipo obj ) a una variable para tener acceso más tarde.
function Persona() {
Por favor, consulta también Object.create para ver un método nuevo y alternativo
de creación de ejemplos.
El constructor
El constructor se usa para establecer las propiedades del objeto o para llamar a los
métodos para preparar el objeto para su uso. Más adelante describiremos como agregar
métodos a clase y sus definiciones ya que se realiza utilizando una sintaxis diferente.
Las propiedades son variables contenidas en la clase, cada instancia del objeto
tiene dichas propiedades. Las propiedades deben establecerse a la propiedad prototipo de
la clase (función), para que la herencia funcione correctamente.
Para trabajar con propiedades dentro de la clase se utiliza la palabra reservada this
, que se refiere al objeto actual. El acceso (lectura o escritura) a una propiedad desde
fuera de la clase se hace con la sintaxis: NombreDeLaInstancia.Propiedad. Es la misma
sintaxis utilizada por C++, Java y algunos lenguajes más. (Desde dentro de la clase la
sintaxis es this.Propiedad que se utiliza para obtener o establecer el valor de la
propiedad).
function Persona(primerNombre) {
this.primerNombre = primerNombre;
Los métodos
Los métodos siguen la misma lógica que las propiedades, la diferencia es que son
funciones y se definen como funciones. Llamar a un método es similar a acceder a una
propiedad, pero se agrega () al final del nombre del método, posiblemente con
argumentos.
function Persona(primerNombre) {
this.primerNombre = primerNombre;
Persona.prototype.diHola = function() {
};
https://codepen.io/isbelymor/pen/ZEQWeXO?editors=1112
this.primerNombre = primerNombre;
Persona.prototype.diHola = function() {
};
https://codepen.io/isbelymor/pen/ZEQWeXO?editors=1112