Introducción a JavaScript
JavaScript también se abrevia como JS es un lenguaje de programación interpretado de alto nivel. JavaScript es una de las tres tecnologías principales de la World Wide Web. JavaScript permite crear páginas web interactivas que no sean páginas web estáticas. La mayoría de los sitios web utilizan JS para el desarrollo y los principales navegadores web tienen un motor JavaScript para ejecutarlo. JavaScript es un lenguaje de programación interpretado basado en prototipos liviano y débilmente tipado con capacidades orientadas a objetos. JavaScript se utiliza para el desarrollo de aplicaciones web en el lado del cliente, se incluye en un archivo HTML o se hace referencia a él para que el código se represente en el navegador. Hoy en día, JavaScript no solo se usa para el desarrollo del lado del cliente, sino también para la programación del lado del servidor, hay varios marcos disponibles que se crean utilizando JavaScript como Node.js. Node.js tiene muchos módulos para desarrollar microservicios, API, conexiones de bases de datos, muchos más. El mecanismo del lado del cliente de JavaScript ofrece muchas ventajas sobre los scripts CGI tradicionales. JavaScript se puede usar para actuar en función de eventos iniciados por el usuario, como hacer clic en los botones, navegaciones, mensajes emergentes, etc., y también se usa para la validación del lado del cliente. por ejemplo, puede validar los campos como correo electrónico, contraseña, etc., en el formulario antes de enviarlo al servidor web.
¿Es el lenguaje JavaScript orientado a objetos?
El tema de si JavaScript es un lenguaje orientado a objetos puro o no es siempre discutible. Así que ahora vamos a aclarar que está orientado a objetos de Javascript porque algunos dicen que no está orientado a objetos porque no tiene clases y no puede implementar conceptos de OOP como herencia o encapsulación y algunos dicen que es un lenguaje orientado a objetos. Antes de discutir este tema orientado a objetos de JavaScript, uno debe entender que ¿qué hace que un lenguaje de programación sea un lenguaje de programación orientado a objetos?
Hay pocas características importantes de un lenguaje orientado a objetos:
-
Polimorfismo:
La capacidad del objeto de tomar muchas formas. Por ejemplo, la función se puede sobrecargar con el mismo nombre pero con diferentes parámetros.
-
Encapsulación:
Vinculando todos los datos y las operaciones juntos y manteniéndolos en una clase.
-
Herencia:
La clase secundaria se puede derivar de la clase primaria con todas las características de la clase primaria y algunas propiedades propias.
Estos tres principios mencionados anteriormente forman la base de un lenguaje orientado a objetos.
Por lo tanto, es posible que JavaScript no siga el paradigma exacto de los Principios orientados a objetos, pero JavaScript tiene diferentes formas de implementar la POO. Podemos demostrar cómo JavaScript sigue los Principios orientados a objetos tomando algunos ejemplos:
Encapsulación:
La idea de la encapsulación es que no se debe acceder directamente a los datos de un objeto, sino a algunos métodos. Pero en JavaScript, no hay un concepto de clase y objetos que implemente la encapsulación de dos maneras, que es el Alcance de la Función y el Cierre
1) Alcance de la función:
Esto no es más que declarar las variables dentro de las funciones. Por lo tanto, el alcance de las variables se limitará solo a las funciones y otros objetos no pueden acceder a las variables. Tomemos un ejemplo para demostrar el alcance de la función.
prueba de funcionamiento()
(
valor var = "¡Hola!";
alerta (valor) // "¡Hola!";
)
alerta (valor) // error; El valor no está disponible fuera de la función.
2) cierres:
El cierre es un ámbito interno que tiene acceso a variables declaradas fuera de su bloque, incluso después de que esas variables hayan quedado fuera del ámbito. Aunque los métodos de un objeto no pueden acceder a las otras variables locales, un objeto interno tiene acceso a las variables de su función principal. Tomemos un ejemplo para entender esto.
var person = (
var name = “JavaScript”;
return (
setName : function(value)(
name = value;
),
getName : function()(
return name;
)
);
);
alert(person.name) //JavaScript
person.setName(“Java”)
alert(person.name) //Java
Entonces, de esta manera, podemos declarar objetos internos o métodos para ocultar los datos y se puede acceder a ellos utilizando objetos primarios.
Herencia:
JavaScript admite la herencia a través del concepto denominado herencia de Prototypal que permite que el objeto JavaScript adquiera todas o algunas de las características de otros objetos u objetos primarios.
1) prototipo:
JavaScript se describe como lenguaje basado en prototipos, para proporcionar un objeto de herencia puede tener un objeto prototipo que herede métodos y propiedades de otros objetos. Un objeto prototipo de objetos también puede tener un objeto prototipo que hereda métodos y propiedades de su objeto padre y así sucesivamente, esto se denomina cadena prototipo.
La imagen de arriba muestra todas las propiedades del objeto "animal" que se está creando. Entonces, el "nombre" y el "tipo" son las propiedades de un objeto "animal" y las propiedades como valueOf, toString, toLocaleString, etc. son las propiedades de un objeto padre que se heredan del objeto animal. Consulte la imagen a continuación que muestra las propiedades del objeto principal utilizando el prototipo de propiedad.
Polimorfismo:
Poli significa "muchos", el morfismo significa "formas", el polimorfismo no es más que tener diferentes formas. En JavaScript, el polimorfismo se logra mediante subtipos genéricos, de sobrecarga y estructurales.
1) Genéricos (polimorfismo paramétrico):
Esto dice que el tipo de la variable no importa en absoluto, son intercambiables. Una función que define uno o más parámetros del tipo polimórfico paramétrico no debe saber nada acerca de los tipos, debe tratarlos a todos por igual porque puede adaptarse a cualquiera de los tipos. Consulte el ejemplo a continuación
const data = x => y => y.concat (x);
datos (3) ((1, 2)); // (1, 2, 3)
datos ("c") (("a", "b")); //("a B C")
2) Sobrecarga (polimorfismo ad-hoc):
La sobrecarga en JavaScript se logra utilizando un polimorfismo específico. El polimorfismo ad-hoc es un tipo de polimorfismo en el que las funciones polimórficas se pueden aplicar a argumentos de varios tipos porque las funciones polimórficas pueden denotar el número de implementaciones heterogéneas distintas dependiendo de los tipos de argumentos. Consulte el ejemplo mencionado a continuación
El operador "+" se utiliza de varias maneras, como sumar los números, concatenar las cadenas, etc.
1 + 2 = 3
1.2 + 2.3 = 3.5
"Java" + "Script" = "JavaScript"
3) Subtipo estructural (polimorfismo estructural):
El polimorfismo estructural dice que los diferentes tipos son equivalentes, por ejemplo, si un tipo tiene todas las propiedades del otro tipo junto con algunas propiedades adicionales (siguiendo la misma estructura)
Peso constante = (valor: 100, datos: verdadero)
Velocidad constante = (valor: 200, datos: falso, foo: (1, 2, 3))
La velocidad se considera un subtipo de peso.
Conclusión: ¿está orientado a objetos Javascript?
Como estábamos discutiendo sobre JavaScript Orientado a Objetos, ahora podemos concluir que JavaScript es un Lenguaje Orientado a Objetos. Aunque no tiene clases reales, sigue siendo un lenguaje orientado a objetos porque sigue los conceptos centrales de los principios orientados a objetos. Por lo tanto, un lenguaje puede orientarse a objetos si admite objetos incluso sin clases.
Artículos recomendados
Esta ha sido una guía de Is Javascript Object Oriented. Aquí hemos discutido los conceptos básicos y las características de Javascript y orientado a objetos. También puede consultar los siguientes artículos:
- JavaScript vs VBScript
- Usos de JavaScript
- JavaScript vs AngularJS
- JavaScript vs Nodo JS
- Guía completa de objetos en Java
- Objeto en Python
- Ejemplos y cómo funcionan los genéricos en C #