В чем разница между методом и функцией? Это значит, что метод возвращает значение, а функция – нет?
Метод фактически является функцией, используемой в контексте класса / объекта.
Когда вы создаете функцию вне класса / объекта, вы можете вызвать ее как функцию, но когда вы создаете функцию внутри класса, вы можете назвать ее методом .
class foo { public function bar() { // a method ........ } }
function bar() { // a function not part of an object }
Таким образом, объект может иметь методы (функции) и свойства (переменные).
Слова не противоречат друг другу, а скорее описывают два возможных аспекта подпрограммы. Попытка определить слова следует:
Подпрограмма: набор инструкций, которые можно использовать несколько раз в одной программе.
Функция: Подпрограмма, возвращающая значение. Производится из функций в математике ( википедия ).
Метод: Подпрограмма, которая принадлежит объекту или классу. Может быть функцией.
Я обычно использую слово «функция» для каждой подпрограммы, которая не имеет побочных эффектов, но возвращает одно четкое значение и слово «метод» для каждой подпрограммы, которая имеет побочный эффект.
Разница между выражениями «метод» и «функция» заключается в том, что «метод» является функцией-членом класса, тогда как автономной функции нет, а автономная функция обычно существует в глобальном контексте.
Оба используются взаимозаменяемо, но функция – это терминология, используемая в структурных языках, а метод – это терминология, используемая в объектно-ориентированных лангауагах. Также существуют методы внутри объектов, в то время как функции могут существовать и без объектов.
Функция – это общий термин, который будет использоваться в процедурном программировании, где метод – это термин, который будет использоваться в объектно-ориентированном программном подходе для определения свойства класса.
Мы определяем метод внутри класса, определяем функцию вне бокового класса, функция не является частью класса
В одной строке метод является функцией, но функция не обязательно является методом. Разница заключается в том, что метод используется для описания функций, определенных в классах, которые используются с экземплярами этих классов.
package {class Example { public function iAmAMethod():void { addEventListener("listenerFunctionIsNotAMethod", function(event:Event):void { trace("inline function, yay!"); }); }
}