The fundamentals of Object-Oriented JavaScript