As Error404 mentioned, methods and functions are very similar, except for where they reside. If you had an object named Grill, and a method named cookBurgers(), you could tell that object to cook burgers by calling this method. However, you cannot cookBurgers() without a Grill.
So why do you need functions if you're writing object-oriented code?
Consider the Grill object again. We want to be able to cook burgers, but we would also like to cook chicken. These are very similar actions, but require fundamentally different instructions. Now consider that in javascript, you can pass a function as a parameter. If we create a method on our Grill object called cook, which takes a function parameter, we can now tell the same object to use either outside function.
To Recap:
Using methods to achieve the same result, we would make a Grill object, and create two methods called cookBurgers() and cookChicken().
Grill Burgers:
Grill.cookBurgers();
Grill Chicken:
Grill.cookChicken();
Passing functions to our Grill object would allow us to pass in functionality to existing code.
Grill.cook = function(cookingFunction) {
cookingFunction();
alert("Come and get it!");
}
we would then call this method with
Grill.cook(cookBurgers());
Grill.cook(cookChicken());
The advantage to this being that we can add new behaviors to our Grill object without editing its code later.