If you have ever worked with Vue.js, Ember or MobX I’m pretty sure you stumbled upon the so-called computed properties. They allow you to create functions that can be accessed just like normal values, but once computed they are cached until one of its dependencies has changed.