JS властивість String.prototype
Загальний опис
String.prototype
в JavaScript є прототипом, який використовується для додавання нових властивостей та методів до конструктора String
. Це означає, що ви можете додати нові функції або властивості до всіх рядкових об'єктів в рамках вашого коду. Використання String.prototype
є основоположним для розширення можливостей роботи з рядками у JavaScript, дозволяючи створювати більш гнучкі та потужні програми.
Розглянемо приклад, де ми хочемо додати новий метод до всіх рядків:
String.prototype.sayHello = function() {
return `Привіт, ${this}!`;
};
let myName = "Олександр";
console.log(myName.sayHello()); // Виведе: "Привіт, Олександр!"
Тут ми додали метод sayHello
до String.prototype
, який дозволяє будь-якому рядку вивести привітання.
Розширення функціональності рядків
String.prototype
може бути корисним для додавання специфічних функцій, яких немає в стандартному API JavaScript. Наприклад, якщо вам часто потрібно перевіряти, чи рядок закінчується певним словом, можна додати таку функцію:
String.prototype.endsWithWord = function(word) {
const words = this.split(' ');
return words[words.length - 1] === word;
};
let sentence = "Життя прекрасне";
console.log(sentence.endsWithWord("прекрасне")); // Виведе: true
Важливо уникати переписування вбудованих методів, оскільки це може порушити очікувану поведінку рядків. Рекомендується використовувати цю можливість обережно та з розумінням потенційного впливу на всю вашу програму.
Нотатка: |
|
Нотатка: | Методи |
Нотатка: | Методи |
Нотатка: | Доступ до окремих символів рядка можна отримати за допомогою методу |
Нотатка: | При використанні |
Синтаксис
String
Значення
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
3 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому простому прикладі ми використовуємо властивість String.prototype.length
, щоб визначити довжину рядка. Це одна з найбільш фундаментальних і важливих властивостей, що використовується у JavaScript для роботи з текстом. Властивість length
повертає кількість символів у рядку, що є корисним при перевірці вводу даних або обробці тексту.
// Вихідний рядок
let myString = "Привіт, світе!";
// Визначаємо довжину рядка
let lengthOfString = myString.length;
console.log(lengthOfString); // Виводить: 14
У цьому складнішому прикладі ми використовуємо метод String.prototype
у комбінації з методами JSON.parse()
і JSON.stringify()
. Це демонструє, як можна перетворювати рядок, який містить JSON, у JavaScript-об'єкт і назад. Це важливо для роботи з даними, отриманими з API або збереженими у форматі JSON.
// Рядок, який містить JSON
let jsonString = '{"name":"Іван", "age":30}';
// Перетворюємо JSON-рядок у об'єкт
let userObject = JSON.parse(jsonString);
// Змінюємо вік користувача
userObject.age = 31;
// Перетворюємо об'єкт назад у JSON-рядок
let updatedJsonString = JSON.stringify(userObject);
console.log(updatedJsonString); // Виводить: '{"name":"Іван","age":31}'
У цьому прикладі ми перевизначимо метод String.prototype.concat
, який зазвичай використовується для об'єднання рядків. Ми модифікуємо його таким чином, щоб він також додавав роздільний символ між рядками.
Це приклад того, як можна змінити стандартну поведінку вбудованих методів у JavaScript, але слід зазначити, що такі зміни можуть впливати на інші частини коду, які використовують ці методи, тому вони мають застосовуватися обережно.
// Збереження оригінального методу concat
String.prototype.originalConcat = String.prototype.concat;
// Перевизначення методу concat
String.prototype.concat = function(...strings) {
let result = this;
strings.forEach(string => {
result = result.originalConcat("-", string);
});
return result;
};
// Приклад використання перевизначеного методу
let hello = "Привіт";
let world = "Світ";
let message = hello.concat(world);
console.log(message); // Виводить: "Привіт-Світ"