Function expressions in JavaScript are not hoisted, unlike function declarations. You can't use function expressions before you declare them:
notHoisted();
var notHoisted = function() {
console.log("bar");
};
Named function expression
If you want to refer to the current function inside the function
body, you need to create a named function expression. This name is then
local only to the function body (scope). This also avoids using the
non-standard
arguments.callee
property.
var math = {
'factorial': function factorial(n) {
if (n <= 1)
return 1;
return n * factorial(n - 1);
}
};
No comments:
Post a Comment