Дослідження Статичних Властивостей у JavaScript
У програмуванні статичні властивості дозволяють зберігати спільну інформацію для всіх екземплярів класу, що робить їх ідеальними для зберігання постійних даних.
Що таке статичні властивості?
Статичні властивості належать самому класу, а не окремому екземпляру класу. Це означає, що статичні властивості спільні для всіх екземплярів і можуть бути доступні безпосередньо через клас без необхідності створювати об'єкт. Вони часто використовуються для утилітних функцій, констант або даних, які мають бути спільними для всіх екземплярів класу.
Розглянемо компанію, де кожен працівник (екземпляр класу) має власну особисту інформацію (ім'я, посада), але адреса компанії (статична властивість) однакова для всіх працівників. Адреса належить самій компанії, а не окремому працівнику.
Як оголошувати та використовувати статичні властивості
Щоб оголосити статичну властивість, використовуйте ключове слово static
всередині класу. Статичні властивості можна отримати лише за допомогою імені класу, а не через екземпляри класу.
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
У цьому прикладі властивість headquarters
є спільною для всіх екземплярів класу Company
. Як екземпляри Google
, так і Amazon
використовують одну й ту ж адресу головного офісу. Статичні властивості доступні безпосередньо через ім'я класу (Company.headquarters
), а не через екземпляри класу.
Як статичні властивості спільно використовуються всіма екземплярами класу
Оскільки статичні властивості прив'язані до самого класу, вони не копіюються для кожного екземпляра. Усі екземпляри класу звертаються до однієї й тієї ж статичної властивості, що є ефективним способом зберігання даних, які не потребують змін для кожного екземпляра.
Приклад: Лічильник кількості створених екземплярів
Припустимо, потрібно відстежувати, скільки екземплярів класу було створено. Для цього можна використати статичну властивість, яка зберігатиме кількість екземплярів, та збільшувати її щоразу при створенні нового екземпляра.
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
У цьому прикладі щоразу при створенні нового користувача статична властивість count
збільшується. Всі екземпляри класу User
мають спільне значення count
, оскільки ця властивість належить самому класу.
Переваги статичних властивостей
Оскільки статичні властивості спільні для всіх екземплярів, немає потреби дублювати дані, що робить код чистішим і ефективнішим. Вони особливо корисні для зберігання інформації, яка однакова для всіх екземплярів, наприклад, налаштувань конфігурації або констант, що допомагає підтримувати узгодженість у всьому коді.
Приклад із реального життя: Конфігурація застосунку
У реальних сценаріях можна мати об'єкт конфігурації застосунку, який зберігає спільні налаштування для всього застосунку. Статичні властивості є чудовим вибором для таких випадків використання.
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
У цьому прикладі назва додатку та версія спільні для всіх користувачів застосунку. Статичні властивості appName
та version
належать класу і не дублюються для кожного екземпляра.
1. Що таке статична властивість?
2. Як отримати доступ до статичної властивості?
3. У наведеному коді, який результат виведе console.log(User.count);
?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.22
Дослідження Статичних Властивостей у JavaScript
Свайпніть щоб показати меню
У програмуванні статичні властивості дозволяють зберігати спільну інформацію для всіх екземплярів класу, що робить їх ідеальними для зберігання постійних даних.
Що таке статичні властивості?
Статичні властивості належать самому класу, а не окремому екземпляру класу. Це означає, що статичні властивості спільні для всіх екземплярів і можуть бути доступні безпосередньо через клас без необхідності створювати об'єкт. Вони часто використовуються для утилітних функцій, констант або даних, які мають бути спільними для всіх екземплярів класу.
Розглянемо компанію, де кожен працівник (екземпляр класу) має власну особисту інформацію (ім'я, посада), але адреса компанії (статична властивість) однакова для всіх працівників. Адреса належить самій компанії, а не окремому працівнику.
Як оголошувати та використовувати статичні властивості
Щоб оголосити статичну властивість, використовуйте ключове слово static
всередині класу. Статичні властивості можна отримати лише за допомогою імені класу, а не через екземпляри класу.
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
У цьому прикладі властивість headquarters
є спільною для всіх екземплярів класу Company
. Як екземпляри Google
, так і Amazon
використовують одну й ту ж адресу головного офісу. Статичні властивості доступні безпосередньо через ім'я класу (Company.headquarters
), а не через екземпляри класу.
Як статичні властивості спільно використовуються всіма екземплярами класу
Оскільки статичні властивості прив'язані до самого класу, вони не копіюються для кожного екземпляра. Усі екземпляри класу звертаються до однієї й тієї ж статичної властивості, що є ефективним способом зберігання даних, які не потребують змін для кожного екземпляра.
Приклад: Лічильник кількості створених екземплярів
Припустимо, потрібно відстежувати, скільки екземплярів класу було створено. Для цього можна використати статичну властивість, яка зберігатиме кількість екземплярів, та збільшувати її щоразу при створенні нового екземпляра.
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
У цьому прикладі щоразу при створенні нового користувача статична властивість count
збільшується. Всі екземпляри класу User
мають спільне значення count
, оскільки ця властивість належить самому класу.
Переваги статичних властивостей
Оскільки статичні властивості спільні для всіх екземплярів, немає потреби дублювати дані, що робить код чистішим і ефективнішим. Вони особливо корисні для зберігання інформації, яка однакова для всіх екземплярів, наприклад, налаштувань конфігурації або констант, що допомагає підтримувати узгодженість у всьому коді.
Приклад із реального життя: Конфігурація застосунку
У реальних сценаріях можна мати об'єкт конфігурації застосунку, який зберігає спільні налаштування для всього застосунку. Статичні властивості є чудовим вибором для таких випадків використання.
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
У цьому прикладі назва додатку та версія спільні для всіх користувачів застосунку. Статичні властивості appName
та version
належать класу і не дублюються для кожного екземпляра.
1. Що таке статична властивість?
2. Як отримати доступ до статичної властивості?
3. У наведеному коді, який результат виведе console.log(User.count);
?
Дякуємо за ваш відгук!