Nested Functions in JavaScript

Functions are a useful block of code that can be called anywhere required in a program. A nested function is a function within a function. Such a feature is supported in many programming languages, JavaScript included.

We will introduce nested functions in JavaScript in this tutorial.

The function on the outside is termed the outer function. The function nested inside is called the inner function. Each function can accept different arguments.

They can be implemented in the following way.

function a(x) {    // Outer function
  function b(y) { // inner function
    return x - y; 
  return b;      




In the above example, a() is the outer function, and b() is the inner function. The final result returned uses the arguments from both the functions.

Functions are class objects that can be defined in the outer function and created like a variable at any part of the function. This method is called currying.

See the code below.

function outer(x) {
      var w = function inner(y) {
        return x * y;
      return w;

   var outvar = outer(2);



The nested functions have another benefit to it. They can be used to perform calculations inside another function, even if they are defined outside.

For Example,

function calculate(a,b,fn){
      var c = a + b + fn(a,b);
      return  c;

function sum(a,b) {
      return a+b;

function product(a,b) {
      return a*b;

console.log(calculate (10,20,sum)); 
console.log(calculate (10,20,product)); 


DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

Related Article - JavaScript Function

  • Call a JavaScript Function Into an HTML Body