Шрифт:
Одна из причин, по которым может потребоваться сравнивать экземпляры класса, - обеспечить возможность сортировки массива экземпляров этого класса. Метод Array.sort может принимать в виде необязательного аргумента функцию сравнения, которая должна следовать тем же соглашениям о возвращаемом значении, что и метод
Сортировка имеет настолько большое значение, что следует рассмотреть возможность реализации статического метода сравнения в любом классе, где определен метод экземпляров
При наличии этого метода сортировка массива может быть реализована еще проще:
Некоторые классы могут быть упорядочены более чем одним способом. Например, класс
9.6.5. Заимствование методов
В методах JavaScript нет ничего необычного - это обычные функции, присвоенные свойствам объекта и вызываемые «посредством» или «в контексте» объекта.
Одна и та же функция может быть присвоена двум свойствам и играть роль двух методов. Мы использовали эту возможность в нашем классе
Одна и та же функция может даже использоваться как метод сразу нескольких классов. Большинство методов класса
Заимствоваться могут не только методы класса
Обратите внимание, что метод
Пример 9.9. Обобщенные методы, пригодные для заимствования