Javascript Common Design Patterns and Anti-Patterns