Closure is a strategy for maintaining state without using global variables. The idea is to create an IFFE that instantiates a piee of data and returns a function designed to modify that data. The function returned by the IFFE is stored in a const variable. Then, when that function is called later, it will have access to the scope of the IFFE and can modify the data, but the data will not be accessible from anywhere else.