¿Objeto y constructores de objetos en JavaScript?
En el mundo vivo de la programación orientada a objetos ya conocemos la importancia de las clases y los objetos pero a diferencia de otros lenguajes de programación, JavaScript no tiene las tradicionales clases como se ven en otros lenguajes. Pero JavaScript tiene objetos y constructores que funcionan en su mayoría de la misma manera para realizar el mismo tipo de operaciones.
- Los constructores son funciones generales de JavaScript que se utilizan con la palabra clave «new». Los constructores son de dos tipos en JavaScript, es decir, constructores incorporados (array y objeto) y constructores personalizados (definen propiedades y métodos para objetos específicos).
- Los constructores pueden ser útiles cuando necesitamos una forma de crear un «tipo» de objeto que pueda ser utilizado varias veces sin tener que redefinir el objeto cada vez y esto podría lograrse utilizando la función Object Constructor. Es una convención para poner en mayúsculas el nombre de los constructores para distinguirlos de las funciones regulares.
Por ejemplo, considere el siguiente código:
function Automobile(color) { this.color=color;}var vehicle1 = new Automobile ("red");
La función «Automóvil()» es un constructor de objetos, y sus propiedades y métodos, es decir, «color» se declara dentro de ella mediante el prefijo con la palabra clave «este». Los objetos definidos usando un constructor de objetos se convierten en instantes usando la palabra clave «new».
Cuando se llama a new Automobile(), JavaScript hace dos cosas:
- Crea un nuevo objeto (instancia) Automobile() y lo asigna a una variable.
- Se establece la propiedad del constructor es decir, «color» del objeto a Automóvil.
Método Object.create()
El método Object.create() se utiliza para crear un nuevo objeto con el prototipo de objeto y propiedades especificadas. El método Object.create() devuelve un nuevo objeto con el objeto prototipo y las propiedades especificadas.
Aplicaciones:
- Object.create() se utiliza para implementar la herencia.
Sintaxis:
Object.create(prototype)
Parámetros utilizados:
- prototipo :
Es el objeto prototipo a partir del cual se debe crear un nuevo objeto.
- propertiesObject : Es un parámetro opcional. Especifica las propiedades enumerables que se añadirán al objeto recién creado.
Valor de retorno:
Object.create() devuelve un nuevo objeto con el objeto prototipo y las propiedades especificadas.
A continuación se proporcionan ejemplos de la función anterior.
Ejemplos:
Explicación: En este ejemplo, hay dos funciones «frutas» y «manzana».Se crea una nueva instancia de manzana que se denomina «app» y se ha especificado con el prototipo y la propiedad de «frutas», es decir, this.name = ‘fruta 1’.
Explicación: En este ejemplo, hay dos funciones «frutas» y «manzana».Se crea una nueva instancia de manzana que se denomina «app» y se ha especificado con el prototipo y la propiedad de «frutas» es decir, this.name = ‘fruta 1’ y this .season = ‘verano’.
A continuación se proporcionan los códigos de la función anterior.
Código 1:
SALIDA :
"fruit 1"
Código 2:
OUTPUT :
"fruit 1""summer"
Excepciones :
- Objeto.create( ) lanza una excepción TypeError si el parámetro propertiesObject no es null.
- Object.create( ) lanza una excepción TypeError si el parámetro propertiesObject es un objeto no primitivo.