Object-oriented JavaScript create scalable, reusable high-quality JavaScript applications and libraries - Stefanov, Stoyan. (Packt Publishing, 2008)