Method vs Functions, and other questions

With respect to JS, what's the difference between the two? I know methods are associated with objects, but am confused what's the purpose of functions? How does the syntax of each of them differ?

Also, what's the difference between these 2 syntax'es:

var myFirstFunc = function(param) {
    //Do something
};

and

function myFirstFunc(param) {
    //Do something
};

Also, I saw somewhere that we need to do something like this before using a function:

obj.myFirstFunc = myFirstFunc;
obj.myFirstFunc("param");

Why is the first line required, and what does it do?

Sorry if these are basic questions, but I'm starting with JS and am confused.

EDIT: For the last bit of code, this is what I'm talking about:

// here we define our method using "this", before we even introduce bob
var setAge = function (newAge) {
  this.age = newAge;
};
// now we make bob
var bob = new Object();
bob.age = 30;
// and down here we just use the method we already made
bob.setAge = setAge;

Solution 1:

To answer your title question as to what is the difference between a 'function' and a 'method'.

It's semantics and has to do with what you are trying to express.

In JavaScript every function is an object. An object is a collection of key:value pairs. If a value is a primitive (number, string, boolean), or another object, the value is considered a property. If a value is a function, it is called a 'method'.

Within the scope of an object, a function is referred to as a method of that object. It is invoked from the object namespace MyObj.theMethod(). Since we said that a function is an object, a function within a function can be considered a method of that function.

You could say things like “I am going to use the save method of my object.” And "This save method accepts a function as a parameter.” But you generally wouldn't say that a function accepts a method as a parameter.

Btw, the book JavaScript Patterns by Stoyan Stefanov covers your questions in detail, and I highly recommend it if you really want to understand the language. Here's a quote from the book on this subject:

So it could happen that a function A, being an object, has properties and methods, one of which happens to be another function B. Then B can accept a function C as an argument and, when executed, can return another function D.

Solution 2:

There is a slight difference -

Method : Method is a function when object is associated with it.

var obj = {
name : "John snow",
work : function someFun(paramA, paramB) {
    // some code..
}

Function : When no object is associated with it , it comes to function.

function fun(param1, param2){
// some code...
}