Skip to content Skip to sidebar Skip to footer

What Is The Difference Between These Two Functions/approaches?

I use only jQuery for writing JavaScript code. One thing that confuses me is these two approaches of writing functions, First approach vote = function (action,feedbackId,responseDi

Solution 1:

The first is a function expression assigned to the vote variable, the second is a function declaration.

The main difference is that function statements are evaluated at parse time, they are available before its declaration at runtime.

See also:

Solution 2:

function myFunction() {}

...is called a "function declaration".

var myFunction = function() {};

...is called a "function expression".

They're very similar; however:

  • The function declaration can be declared after it is referenced, whereas the function expression must be declared before it is referenced:

    // OKmyFunction();
    functionmyFunction() {}
    
    // ErrormyFunction();
    var myFunction = function() {};
    
  • Since a function expression is a statement, it should be followed by a semi-colon.

See Function constructor vs. function declaration vs. function expression at the Mozilla Developer Centre for more information.

Solution 3:

The function declaration syntax cannot be used within a block statement.

Legal:

function a() {
    function b() {

    }
}

Illegal:

function a() {
    if (c) {
        function b() {

        }
    }
}

You can do this though:

functiona() {
    var b;
    if (c) {
        b = function() {

        };
    }
}

Solution 4:

The first one is a function expression,

var calculateSum = function(a, b) { return a + b; }

alert(calculateSum(5, 5)); // Alerts 10

The second one is a plain function declaration.

Post a Comment for "What Is The Difference Between These Two Functions/approaches?"