Exploración de Propiedades Estáticas en JavaScript
En programación, las propiedades estáticas permiten que la información compartida exista entre todas las instancias de una clase, lo que las hace ideales para datos consistentes.
¿Qué son las propiedades estáticas?
Las propiedades estáticas pertenecen a la clase en sí misma y no a una instancia particular de la clase. Esto significa que las propiedades estáticas se comparten entre todas las instancias y pueden ser accedidas directamente desde la clase sin necesidad de crear un objeto. Se utilizan frecuentemente para funciones utilitarias, constantes o datos que deben ser compartidos entre todas las instancias de una clase.
Considere una empresa donde cada empleado (una instancia de una clase) tiene su propia información personal (nombre, puesto), pero la dirección de la empresa (una propiedad estática) es la misma para todos los empleados. La dirección pertenece a la empresa en sí, no a un empleado individual.
Cómo declarar y usar propiedades estáticas
Para declarar una propiedad estática, utilice la palabra clave static
dentro de la clase. Las propiedades estáticas solo pueden ser accedidas utilizando el nombre de la clase, no desde las instancias de la clase.
1234567891011121314151617181920class Company { static headquarters = '123 Main St'; // Static property constructor(name) { this.name = name; // Instance property } getCompanyInfo() { return `${this.name} is located at ${Company.headquarters}`; } } const google = new Company('Google'); console.log(google.getCompanyInfo()); // Output: Google is located at 123 Main St const amazon = new Company('Amazon'); console.log(amazon.getCompanyInfo()); // Output: Amazon is located at 123 Main St // Accessing the static property directly from the class console.log(Company.headquarters); // Output: 123 Main St
En este ejemplo, la propiedad headquarters
es compartida entre todas las instancias de la clase Company
. Tanto las instancias Google
como Amazon
hacen referencia a la misma dirección de sede central. Las propiedades estáticas se acceden directamente utilizando el nombre de la clase (Company.headquarters
), no a través de las instancias de la clase.
Cómo se comparten las propiedades estáticas entre todas las instancias de una clase
Dado que las propiedades estáticas están asociadas a la propia clase, no se copian para cada instancia. Todas las instancias de la clase hacen referencia a la misma propiedad estática, lo que representa una forma eficiente de almacenar datos que no necesitan cambiar por instancia.
Ejemplo: Contador para el número de instancias creadas
Supongamos que queremos llevar un registro de cuántas instancias de una clase se han creado. Podemos utilizar una propiedad estática para almacenar el conteo de instancias e incrementarla cada vez que se crea una nueva instancia.
123456789101112131415161718192021222324class User { static count = 0; // Static property to track the number of users constructor(name) { this.name = name; User.count++; // Increment static property every time a new user is created } getUserInfo() { return `${this.name} is user number ${User.count}`; } } const user1 = new User('John'); const user2 = new User('Jane'); const user3 = new User('Alice'); // Accessing the static property directly from the class console.log(User.count); // Output: 3 (number of users created) // Each instance can see the total count of users console.log(user1.getUserInfo()); // Output: John is user number 3 console.log(user2.getUserInfo()); // Output: Jane is user number 3 console.log(user3.getUserInfo()); // Output: Alice is user number 3
En este ejemplo, cada vez que se crea un nuevo usuario, la propiedad estática count
se incrementa. Todas las instancias de la clase User
comparten el mismo valor de count
, ya que pertenece a la propia clase.
Beneficios de las Propiedades Estáticas
Dado que las propiedades estáticas se comparten entre las instancias, no es necesario duplicar datos, lo que mantiene el código más limpio y eficiente. Son especialmente útiles para almacenar información que es igual para todas las instancias, como configuraciones o constantes, ayudando a mantener la coherencia en todo el código.
Ejemplo del Mundo Real: Configuración de la Aplicación
En un escenario real, se puede tener un objeto de configuración de la aplicación que almacene ajustes compartidos en toda la aplicación. Las propiedades estáticas serían una excelente opción para estos casos de uso.
12345678910111213141516171819202122class AppConfig { static appName = 'QuirkApp Solutions'; // Shared configuration setting static version = '1.3.14'; // Shared configuration setting constructor(user) { this.user = user; } getUserConfig() { return `${this.user} is using ${AppConfig.appName} version ${AppConfig.version}`; } } const user1 = new AppConfig('Alice'); const user2 = new AppConfig('Bob'); console.log(user1.getUserConfig()); // Output: Alice is using QuirkApp Solutions version 1.3.14 console.log(user2.getUserConfig()); // Output: Bob is using QuirkApp Solutions version 1.3.14 // Accessing static properties directly from the class console.log(AppConfig.appName); // Output: QuirkApp Solutions console.log(AppConfig.version); // Output: 1.3.14
En este ejemplo, el nombre de la aplicación y la versión se comparten entre todos los usuarios de la aplicación. Las propiedades estáticas appName
y version
pertenecen a la clase y no se replican para cada instancia.
1. ¿Qué es una propiedad estática?
2. ¿Cómo se accede a una propiedad estática?
3. En el siguiente código, ¿qué mostrará console.log(User.count);
como salida?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 2.22
Exploración de Propiedades Estáticas en JavaScript
Desliza para mostrar el menú
En programación, las propiedades estáticas permiten que la información compartida exista entre todas las instancias de una clase, lo que las hace ideales para datos consistentes.
¿Qué son las propiedades estáticas?
Las propiedades estáticas pertenecen a la clase en sí misma y no a una instancia particular de la clase. Esto significa que las propiedades estáticas se comparten entre todas las instancias y pueden ser accedidas directamente desde la clase sin necesidad de crear un objeto. Se utilizan frecuentemente para funciones utilitarias, constantes o datos que deben ser compartidos entre todas las instancias de una clase.
Considere una empresa donde cada empleado (una instancia de una clase) tiene su propia información personal (nombre, puesto), pero la dirección de la empresa (una propiedad estática) es la misma para todos los empleados. La dirección pertenece a la empresa en sí, no a un empleado individual.
Cómo declarar y usar propiedades estáticas
Para declarar una propiedad estática, utilice la palabra clave static
dentro de la clase. Las propiedades estáticas solo pueden ser accedidas utilizando el nombre de la clase, no desde las instancias de la clase.
1234567891011121314151617181920class Company { static headquarters = '123 Main St'; // Static property constructor(name) { this.name = name; // Instance property } getCompanyInfo() { return `${this.name} is located at ${Company.headquarters}`; } } const google = new Company('Google'); console.log(google.getCompanyInfo()); // Output: Google is located at 123 Main St const amazon = new Company('Amazon'); console.log(amazon.getCompanyInfo()); // Output: Amazon is located at 123 Main St // Accessing the static property directly from the class console.log(Company.headquarters); // Output: 123 Main St
En este ejemplo, la propiedad headquarters
es compartida entre todas las instancias de la clase Company
. Tanto las instancias Google
como Amazon
hacen referencia a la misma dirección de sede central. Las propiedades estáticas se acceden directamente utilizando el nombre de la clase (Company.headquarters
), no a través de las instancias de la clase.
Cómo se comparten las propiedades estáticas entre todas las instancias de una clase
Dado que las propiedades estáticas están asociadas a la propia clase, no se copian para cada instancia. Todas las instancias de la clase hacen referencia a la misma propiedad estática, lo que representa una forma eficiente de almacenar datos que no necesitan cambiar por instancia.
Ejemplo: Contador para el número de instancias creadas
Supongamos que queremos llevar un registro de cuántas instancias de una clase se han creado. Podemos utilizar una propiedad estática para almacenar el conteo de instancias e incrementarla cada vez que se crea una nueva instancia.
123456789101112131415161718192021222324class User { static count = 0; // Static property to track the number of users constructor(name) { this.name = name; User.count++; // Increment static property every time a new user is created } getUserInfo() { return `${this.name} is user number ${User.count}`; } } const user1 = new User('John'); const user2 = new User('Jane'); const user3 = new User('Alice'); // Accessing the static property directly from the class console.log(User.count); // Output: 3 (number of users created) // Each instance can see the total count of users console.log(user1.getUserInfo()); // Output: John is user number 3 console.log(user2.getUserInfo()); // Output: Jane is user number 3 console.log(user3.getUserInfo()); // Output: Alice is user number 3
En este ejemplo, cada vez que se crea un nuevo usuario, la propiedad estática count
se incrementa. Todas las instancias de la clase User
comparten el mismo valor de count
, ya que pertenece a la propia clase.
Beneficios de las Propiedades Estáticas
Dado que las propiedades estáticas se comparten entre las instancias, no es necesario duplicar datos, lo que mantiene el código más limpio y eficiente. Son especialmente útiles para almacenar información que es igual para todas las instancias, como configuraciones o constantes, ayudando a mantener la coherencia en todo el código.
Ejemplo del Mundo Real: Configuración de la Aplicación
En un escenario real, se puede tener un objeto de configuración de la aplicación que almacene ajustes compartidos en toda la aplicación. Las propiedades estáticas serían una excelente opción para estos casos de uso.
12345678910111213141516171819202122class AppConfig { static appName = 'QuirkApp Solutions'; // Shared configuration setting static version = '1.3.14'; // Shared configuration setting constructor(user) { this.user = user; } getUserConfig() { return `${this.user} is using ${AppConfig.appName} version ${AppConfig.version}`; } } const user1 = new AppConfig('Alice'); const user2 = new AppConfig('Bob'); console.log(user1.getUserConfig()); // Output: Alice is using QuirkApp Solutions version 1.3.14 console.log(user2.getUserConfig()); // Output: Bob is using QuirkApp Solutions version 1.3.14 // Accessing static properties directly from the class console.log(AppConfig.appName); // Output: QuirkApp Solutions console.log(AppConfig.version); // Output: 1.3.14
En este ejemplo, el nombre de la aplicación y la versión se comparten entre todos los usuarios de la aplicación. Las propiedades estáticas appName
y version
pertenecen a la clase y no se replican para cada instancia.
1. ¿Qué es una propiedad estática?
2. ¿Cómo se accede a una propiedad estática?
3. En el siguiente código, ¿qué mostrará console.log(User.count);
como salida?
¡Gracias por tus comentarios!