1. create a function within a function
2. return its definition out
3. store initial (outer) function under a new label
##### Example:
```js
function outer() {
let counter = 0;
// inner function
function incrementCounter() {
counter ++;
return counter;
}
// return inner's definition
return incrementCounter;
}
// store in
const count1 = outer();
const count2 = outer();
count1(); //➞ 1
count1(); //➞ 2
count1(); //➞ 3
count2(); //➞ 1
```