Статьи

Совет: как расширить встроенные объекты в JavaScript

Функции конструктора, такие как Array , предлагают широкий спектр методов и свойств, которые вы можете использовать. Но когда-нибудь хотелось, чтобы один из этих объектов предлагал какой-то не встроенный метод? Есть ли способ сделать это самостоятельно? Абсолютно! Посмотрим как.

Этот небольшой фрагмент использует преимущества метода «обратного» объекта Array и применяет его функциональность к заданной строке. По сути, что-то вроде «привет» будет превращено в «olleh», и доступ к нему можно получить с помощью «myString.reverse ()».

1
2
3
4
5
6
String.prototype.reverse = function() {
    return Array.prototype.reverse.apply(this.split(»)).join(»);
};
     
var myString = ‘hello’;
console.log(myString.reverse());

Теперь, когда у нас есть базовые знания по расширению объектов, можете ли вы найти способ написать собственный метод «содержащий» для объекта String? Например, библиотека jQuery позволяет нам писать такие вещи, как:

1
$(«div:contains(‘John’)»).css(‘fontWeight’, ‘bold’);

Приведенный выше фрагмент будет искать по всем элементам div на странице, а затем отфильтровывать упакованные только те, которые содержат строку «Джон». Как мы могли бы расширить объект String с помощью необработанного JavaScript, чтобы учесть это? Оставьте свое решение в комментариях, и мы обсудим!

  • Подпишитесь на нас в Твиттере или подпишитесь на ленту Nettuts + RSS для получения лучших учебных материалов по веб-разработке.