There are 3 ways you can define a function.
This means following is valid.
Important point to note is that you can use 'mySum' only inside the mySum function body, not outside.
See following example:
1. Using Function constructor
var sum = new Function('a','b', 'return a + b;');
alert(sum(10, 20)); //alerts 30
2. Using Function declaration.
function sum(a, b)
{
return a + b;
}
alert(sum(10, 10)); //Alerts 20;
3. Function Expression
var sum = function(a, b) { return a + b; }
alert(sum(5, 5)); // alerts 10
Difference between declaration and expression:
From ECMA Script specification:FunctionDeclaration : function Identifier ( FormalParameterListopt ){ FunctionBody }If you notice, 'identifier' is optional for function expression. And when you don't give an identifier, you create an anonymous function. It doesn't mean that you can't specify an identifier.
FunctionExpression : function Identifieropt ( FormalParameterListopt ){ FunctionBody }
This means following is valid.
var sum = function mySum(a, b) { return a + b; }
Important point to note is that you can use 'mySum' only inside the mySum function body, not outside.
See following example:
var test1 = function test2() { alert(typeof test2); }
alert(typeof(test2)); //alerts 'undefined', surprise!
test1(); //alerts 'function' because test2 is a function.
0 comments:
Post a Comment