Tipos de espacios de nombres en JavaScript

Tipos de espacios de nombres en JavaScript
Javascript "Espacio de nombres"Es un paradigma de programación que se utiliza para asignar un alcance a los identificadores, como variables y nombres de funciones. Es usado para evitar colisiones entre las variables y funciones del mismo nombre. Por ejemplo, un programa JavaScript requiere crear la misma variable de nombre en un contexto diferente. En esta situación, utilizando "Espacio de nombres"Aisliza los contextos, permitiendo que el mismo identificador se use en otros espacios de nombres.

Esta publicación discutirá diferentes tipos de Espacios de nombres en JavaScript. Entonces, comencemos!

Espacio de nombres de JavaScript

El concepto de agregar clases, métodos, variables y objetos dentro de un contenedor se conoce como "Espacio de nombres"En JavaScript. El código que escribe en un programa JavaScript y los métodos predefinidos se almacenan en el "ventana"Variable, considerada una"Espacio de nombres global". Este espacio de nombres de la ventana se utiliza cada vez que se crea una nueva variable. Además, almacenar cualquier valor en la variable recién creada utilizará su espacio de nombres. Así es como funciona la jerarquía en JavaScript.

Tipos de espacios de nombres en JavaScript

JavaScript admite dos tipos de espacios de nombres:

  • Estático Espacio de nombres
  • Dinámica Espacio de nombres

Discutiremos los dos tipos de espacios de nombres mencionados en detalle.

Espacio de nombres estático en JavaScript

Cuando un "Etiqueta de espacio de nombres"Está codificado y se define una función dentro de él, se conoce como"Espacio de nombres estático". Permite la reasignación de los espacios de nombres; Sin embargo, un espacio de nombres estático siempre se referirá a los mismos objetos JavaScript antiguos.

Los espacios de nombres estáticos en JavaScript se dividen en las categorías a continuación:

  • Espacio de nombres estático con Tarea directa
  • Espacio de nombres estático con Notación literal de objetos
  • Espacio de nombres estático con Patrón de módulo

Ahora, comprendamos la funcionalidad de cada uno de los tipos dados de espacio de nombres estáticos.

Espacio de nombres estático con asignación directa

En "Tarea directa", Las funciones se definen utilizando el espacio de nombres estático ya creado. Por ejemplo, en el siguiente ejemplo, crearemos un objeto llamado "alumno,"Que actúa como un espacio de nombres estático:

Var Student =

Después de hacerlo, definiremos dos funciones "getName ()" y "getage ()"Y asociarlos con el"alumno"Espacio de nombres:

alumno.getName = function ()
var name = "Alex";
nombre de retorno;
alumno.getage = function ()
VAR Age = 35;
edad de retorno;
consola.Log (estudiante.getName ());
consola.Log (estudiante.getAge ());

A medida que las funciones se asignan directamente al "alumno"Espacio de nombres, dará como resultado la siguiente salida:

Espacio de nombres estático con notación literal de objetos

En este tipo de espacio de nombres estático, se agregan funciones dentro del espacio de nombres en declaración de objeto.

En el programa a continuación, hemos utilizado el notación literal de objetos para definir un espacio de nombres estático "alumno"Y agregue el"getName ()" y "getage ()"Función dentro de su alcance:

estudiante var =
getName: function ()
var name = "Alex";
nombre de retorno; ,
getage: function ()
VAR Age = 35;
edad de retorno;
;
consola.Log (estudiante.getName ());
consola.Log (estudiante.getAge ());

Producción

Espacio de nombres estático con patrón de módulo

El javascript "patrón de módulo"Utiliza un envoltura de funciones eso devoluciones un objeto. El objeto devuelto se refiere a la lógica de la interfaz pública del módulo dentro del alcance global.

Este tipo de espacio de nombres estático invoca la función, guarda el valor devuelto a la variable del espacio de nombres y bloquea la API del módulo dentro del alcance del espacio de nombres. Las variables no incluidas en el valor de retorno se mantienen privadas y solo accesibles para la función que se refiere a ellas.

Ejemplo
Ahora definiremos "alumno" como un espacio de nombres estático y envuélvalo en una función:

Var Student = (function ()
devolver
getName: function ()
var name = "Alex";
nombre de retorno;
,
getage: function ()
VAR Age = 35;
edad de retorno;

; ) ();
consola.Log (estudiante.getName ());
consola.Log (estudiante.getAge ());

El valor devuelto por el "getName ()" y "getage ()Los métodos se guardarán en la variable de espacio de nombres estático creado:

Espacio de nombres dinámico en JavaScript

En lugar de codificar una etiqueta de espacio de nombres, una "Espacio de nombres dinámico" es referenciado dentro de envoltura de funciones. Este tipo de espacio de nombres elimina el requisito de combinar el valor de retorno para asignar estos valores al espacio de nombres definido. Se utiliza principalmente en situaciones en las que se crean múltiples instancias independientes de un módulo en diferentes casos.

El espacio de nombres dinámico se puede implementar en JavaScript pasando el espacio de nombres como un "argumento"O definirlo con el"aplicarPalabra clave.

Entendamos ambos procedimientos uno por uno.

Pasando el espacio de nombres dinámico como argumento

JavaScript le permite crear un espacio de nombres dinámico pasándolo como un argumento hacia función de autoinvocadura. Estas funciones se definen con la ayuda del argumento aprobado.

Por ejemplo, crearemos un "alumno"Espacio de nombres y pasarlo como argumento"std". Después de eso, definiremos el "getName ()" y "getage ()"Funciones utilizando el"std" argumento:

Var Student = ; (function (std)
std.getName = function ()
var name = "Alex";
nombre de retorno;
;
std.getage = function ()
VAR Age = 35;
edad de retorno;

)(alumno);
consola.Log (estudiante.getName ());
consola.Log (estudiante.getAge ());

La ejecución del programa anterior mostrará el siguiente resultado:

Crear espacio de nombres dinámico con la palabra clave Aplicar

Otro método para crear un espacio de nombres dinámico es usar el "aplicar" palabra clave y pasarlo como argumento. Después de hacerlo, agregue las funciones requeridas con el "estePalabra clave.

Ejemplo

Var Student = ; (function ()
este.getName = function ()
var name = "Alex";
nombre de retorno;
;
este.getage = function ()
VAR Age = 35;
edad de retorno;

).aplicar (estudiante);
consola.Log (estudiante.getName ());
consola.Log (estudiante.getAge ());

Producción

Esa fue toda información esencial sobre el tipos de Espacios de nombres en Javascript. Puede investigar más según sea necesario.

Conclusión

El Espacio de nombres estático tipo códigos duros el etiqueta de espacio de nombres y define funciones dentro y el Espacio de nombres dinámico tipo es referenciado dentro de envoltura de funciones. En JavaScript, el espacio de nombres estático se crea con asignación directa, notación de objetos y patrón de módulo. Por el contrario, un espacio de nombres dinámico se define pasando como un argumento o utilizando la palabra clave Aplicar. Esta publicación discutió los tipos de espacios de nombres en JavaScript.