Функция представляет собой комбинацию команд, соединенных вместе для достижения некоторого результата. Может принимать аргументы и возвращать результат. Если функция не возвращает результат, ее обычно называют процедурой. Примеры:
function drawLine(x1, y1, x2, y2):
// draws a line using Bresenham's algorithm from x1,y1 to x2,y2.
// doesn't return anything
function <number> add(a, b):
// adds a to b and returns the result as a number
return a + b
Так что функции должны выполнять какую-то конкретную работу. Например, когда вам нужно нарисовать многоугольник из 3 линий как часть векторного изображения, удобнее вызывать drawLine
трижды, чем помещать всю подпрограмму для рисования линий в линию.
Методы («функции-члены») похожи на функции, они принадлежат классам или объектам и обычно выражают глаголы объектов / класса. Например, объект типа Window
обычно имеет методы open
и close
, которые выполняют соответствующие операции с объектом, которому они принадлежат.
Свойства такие же, как в обычном языке, и технически являются полями объектов / классов со специальными процедурами получения / установки (которые можно рассматривать как методы. Есть языки, у которых нет свойств, и такое поведение достигается с помощью закрытого поля + методы get / set.).