Методы

Кроме свойств, у данных могут быть методы. Методы - это функции, находящиеся внутри свойств. С практической точки зрения это значит, что метод работает и вызывается как функция, но делает это как свойство, через точку.

const name = 'Robb';
const upperName = name.toUpperCase();
console.log(upperName); // => ROBB

Встроенные методы, всегда оперируют теми данными, с которыми они связаны. Метод toUpperCase возвращает ту же строку, но преобразуя все символы в верхний регистр. Методов у данных обычно значительно больше, чем свойств, например, для строк их несколько десятков. В документации, на первый взгляд, они описаны немного странно: String.prototype.toLowerCase(). Это описание раскрывает некоторые внутренние детали реализации, которые сейчас не важны, да и мы не изучили всей необходимой базы для разговора о прототипах.

Методы есть и у чисел:

const temperature = 22.93;
// Округление до одного знака после запятой
const roundedTemperature = temperature.toFixed(1);
console.log(roundedTemperature); // 22.9

Хозяйке на заметку. Технически все несколько сложнее. Методы есть не у самих чисел, а у данных (объектов) типа Number. Числа записанные в переменные или константы, автоматически преобразуются к данному типу во время обращения к ним, в это время происходит, так называемый boxing.

Возникает закономерный вопрос. Зачем нужны методы, почему не просто функции? С другой стороны, если говорить о числах, то логика не очевидна. Часть операций реализована в виде методов, а еще большая часть в виде функций, доступных через Math.

Ситуация с числами описывается двумя причинами:

  1. Исторически так сложилось. По-хорошему, функции, работающие с конкретным числом, для единообразия должны быть реализованы как методы. К таким функциям относится получение модуля числа: Math.abs(-10).
  2. Далеко не все функции имеют отношение к конкретному значению. Возьмем для примера Math.min. Эта функция находит минимальное число среди всех, которые ему были переданы. Эту функцию не логично делать методом, она не имеет прямого отношения к одному конкретному числу.

Что касается методов в целом, то не все так однозначно. Есть языки в которых методов нет и там все прекрасно, есть языки где методы это основной способ работы с функциями, но даже в этих языках всегда наряду с методами используются обычные функции. JavaScript - язык, в котором прижились оба подхода, в нем активно используются как обычные функции, так и методы.

Задание

Приведите строку text к нижнему регистру и напечатайте ее на экран.


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь с помощью учётной записи GitHub, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт на GitHub.