Зачем наследоваться от RegExp?
Встречал в статьях о регулярках в JavaScript, упоминания о возможности наследовать свои классы от класса RegExp, т.е. делать что-то в духе:
class MyRegExp extends RegExp {};
Подскажите, пожалуйста, что это даёт в практическом смысле, где это может пригодиться, что интересного можно написать?
Ответы (1 шт):
Автор решения: myscode
→ Ссылка
Ну это по сути удобная версия взамен работы через прототипы. Раньше через прототипы расширялось
RegExp.prototype.customMethod = function() {
console.log("Новый метод");
};
let pattern = /\d+/;
console.log(pattern.test("123456987")); // "true"
pattern.customMethod(); // "Новый метод"
то в ES6 будет удобней и универсальнее
class CustomRegexpClass extends RegExp {
customMethod() {
console.log("Новый метод");
}
}
let pattern = new CustomRegexpClass(/\d+/);
console.log(pattern.test("123456987")); // "true"
pattern.customMethod(); // "Новый метод"