A pattern is a reusable solution that can be applied to commonly occurring problems in software design – in our case – in writing JavaScript applications. Another way of looking at patterns are as templates for how you solve problems – ones which can be used in quite a few different situations.