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
}
}
}
}