Tecnología orientada a objetos ECMAScript

Términos orientados a objetos

Objeto

ECMA-262 define a los objetos (object) como 'conjunto desordenado de atributos, cada atributo almacena un valor primitivo, un objeto o una función'. Estrictamente hablando, esto significa que los objetos son un array de valores sin orden específico.

A pesar de que ECMAScript define objetos de esta manera, su definición más general se basa en la representación de sustantivos basados en código (personas, lugares o cosas).

Clase

Cada objeto se define por una clase, y se puede considerar que una clase es una receta de objetos. Una clase no solo debe definir la interfaz (interfaz) del objeto (las propiedades y métodos accesibles por los desarrolladores), sino también definir el trabajo interno (el código que hace que las propiedades y métodos funcionen). Los compiladores e intérpretes construyen objetos según las descripciones de la clase.

Instancia

Cuando un programa crea un objeto utilizando una clase, el objeto generado se llama instancia (instancia) de la clase. La única limitación única de la cantidad de objetos generados por una clase proviene de la memoria física de la máquina que ejecuta el código. Cada instancia tiene el mismo comportamiento, pero procesa un conjunto de datos independientes. El proceso de creación de objetos a partir de una clase se llama instanciación (instanciación).

En los capítulos anteriores mencionamos que ECMAScript no tiene una clase formal. En cambio, ECMA-262 describe a los objetos como una receta de objetos. Esta es una solución de compromiso lógica en ECMAScript, porque la definición de objeto es en realidad el objeto mismo. Incluso si las clases no existen realmente, llamamos a la definición de objeto 'clase' porque la mayoría de los desarrolladores están más familiarizados con este término y, funcionalmente, son equivalentes.

Requisitos del lenguaje orientado a objetos

Un lenguaje orientado a objetos necesita proporcionar a los desarrolladores cuatro capacidades básicas:

  1. Encapsulación - Capacidad de almacenar información relacionada (ya sea datos o métodos) dentro del objeto
  2. Agrupación - Capacidad de almacenar un objeto dentro de otro objeto
  3. Herencia - Capacidad de obtener las propiedades y métodos de otra clase (o varias clases)
  4. Polimorfismo - Capacidad de escribir funciones o métodos que pueden ejecutarse de varias maneras

ECMAScript admite estos requisitos, por lo que se puede considerar orientado a objetos.

Constitución del objeto

En ECMAScript, los objetos se constituyen por atributos (atributo), que pueden ser valores primitivos o valores de referencia. Si el atributo contiene una función, se considera un método (método) del objeto, de lo contrario, el atributo se considera una propiedad (propiedad) del objeto.