Nesting functions can quickly turn your code into "spaghetti code". Such code is hard to read, refactor and therefore to maintain.

Noncompliant Code Example

With the default threshold of 3:

function f () {
  function f_inner () {
    function f_inner_inner() {
      function f_inner_inner_inner() { // Noncompliant
      }
    }
  }
}