Метод (програмування)

Ме́тод в об'єктно-орієнтованому програмуванніпідпрограма (процедура, функція), що використовується виключно разом із класом (методи класу) або з об'єктом (методи екземпляра).

Види

Розрізняють прості методи і статичні методи (методи класу):

  • прості методи мають доступ до даних об'єкта (конкретного екземпляра даного класу)
  • статичні методи не мають доступу до даних об'єкта і для їх використання не потрібно створювати екземпляри (даного класу).

Метод екземпляра (простий метод)

Приклад простого методу на JavaScript:

const person = {
  name: 'Vasya',
  surname: 'Pupkin',
  born: '01.01.1990',
  //метод, що видає інформацію про персону
  getData() {
    return person.name + ' ' + person.surname + ', ' + person.born;
  }
};
const personData = person.getData(); //'Vasya Pupkin, 01.01.1990'

Статичний метод

Методи і властивості, які не прив'язані до конкретного екземпляру об'єкта, називають «статичними». Їх записують прямо в саму функцію-конструктор.

'use strict';
//створюємо клас для зберігання інформації про журнали 
function Journal(date) {
  this.date = date;
//додаємо метод для перетворення дати
  this.formatDate = function(date) {
    return date.getDate() + '.' + (date.getMonth() + 1) + '.' + date.getFullYear();
  };
//додаємо метод для коректного виводу дати випуску журналу 
  this.getTitle = function() {
    return 'Выпуск от ' + this.formatDate(this.date);
  };
}
//додаємо метод для порівняння дати випуску двох журналів
Journal.compare = function(journalA, journalB) {
  return journalA.date - journalB.date;
};
// створюємо масив журналів
const journals = [
  new Journal(new Date(2012, 1, 1)),
  new Journal(new Date(2012, 0, 1)),
  new Journal(new Date(2011, 11, 1))
];
//знаходимо журнал який був вупещений раніше
function findMin(journals) {
  let min = 0;
  for (let i = 0; i < journals.length; i++) {
    // використовуємо статичний метод
    if (Journal.compare(journals[min], journals[i]) > 0) min = i;
  }
  return journals[min];
}

const firstJournal = findMin(journals).getTitle(); //Выпуск от 1.12.2011

Використання на практиці

Подібно до процедури в процедурних мовах програмування, метод, як правило, складається із послідовності операцій для виконання дії, множини вхідних параметрів для налаштування цієї дії, та, можливо, вихідного значення деякого типу (значення, що повертається).

Призначення методів полягає в здійсненні певних дій над полями класу (змінними-членами) та надання механізму доступу до цих полів даних, що інкапсулюються в об'єкті або класі.

Класифікація

Залежно від способу використання, методи поділяються на:

  • змістовні — надаються клієнтам класу і визначають його інтерфейс, звичайно є публічними;
  • спеціальні — викликаються автоматично при створенні (конструктори), знищенні (деструктори), копіюванні (конструктори копіювання), перетворенні типу тощо;
  • допоміжні — викликаються з змістовних та спеціальних методів, звичайно не надаються клієнтам класу і є захищеними або приватними.

Залежно від впливу на стан об'єкта, методи поділяються на:

  • конструктори — встановлюють початковий стан об'єкта;
  • деструктори — скидають стан об'єкта;
  • селектори (геттери) — надають значення атрибута;
  • модифікатори (сеттери) — встановлюють значення атрибута;
  • ітератори — надають послідовний доступ до множини атрибутів.

Методи в JavaScript

Всі значення в JavaScript, за винятком null і undefined, містять набір допоміжних функцій і значень, доступних «через крапку». Такі функції називають «методами», а значення - «властивостями». Тут ми розглянемо основи використання властивостей і методів.

Приведемо деякі стандартні методи різних типів даних:

Методи String

В рядків є метод toUpperCase (), який повертає рядок у верхньому регістрі

let hello = "Hello world!";

hello = hello.toUpperCase(); // "HELLO WORLD!"

Також є метод toLowerCase (), який працює аналогічно попередньому але повертає рядок у нижньому регістрі.

Метод indexOf (Str) повертає позицію першого символу першого входження підрядка Str в рядку.

Метод lastIndexOf (Str) повертає позицію останнього входження Str в рядку.

Метод slice (String) повертає фрагмент рядка.

Методи Number

Для переведення числа в рядок використовують метод toString(система счисления)

let n = 255;
str = n.toString(16); // ff

Методи Array

Для додавання/видалення елементів масиву використовують наступні методи:

  • pop Видаляє останній елемент з масиву і повертає його.
  • push Додає елемент в кінець масиву.
  • shift Видаляє з масиву перший елемент і повертає його.
  • unshift Додає елемент в початок масиву.

Методи Function

У сучасному JavaScript у функційє вбудований метод bind, який ми можемо використовувати. За допомогою цього методу до функції можна прив'язати контекст

var user = {
  name: "Vasya",
  sayName: function() {
    alert( this.name );
  }
};
//Прив'яжемо контекст об'єкта до функції  
setTimeout(user.sayName.bind(user), 1000); //виведе 'Vasya' через 1 секунду

Див. також


Посилання


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.