Shared State
A shared state is any variable, object, or memory space that exists in a shared scope. Any non-constant variable used by multiple separate scopes, including the global scope and closure scopes, is considered to be in a shared state. In functional programming, shared states should be avoided. A shared state prevents a function from being pure. When the shared state rule is violated and the program modifies a variable, a side effect is created. In OOP, shared states are often passed around as objects. OOP functions may modify the shared state. This is very much against functional programming rules. An example of a shared state is shown in the following snippet:
const state = { age: 15 } function doSomething( name ) { return state.age > 13 ? '${name} is old enough' : '${name} is not old enough'; }
Snippet 5.7: Shared state
In the preceding example, we have a variable in the global scope called state
. In our function called doSomething
, we reference the variable state to make...