We may earn an affiliate commission when you visit our partners.
Tom Chant

In this course, you'll explore some of JavaScript’s most powerful features to enhance your coding skills. You’ll learn how to design and manage custom objects, as well as work with advanced patterns for handling collections and functions. These concepts will help you write cleaner, more efficient code and leverage JavaScript’s unique capabilities to handle complex scenarios effectively.

There are 3 sections in this course:

Read more

In this course, you'll explore some of JavaScript’s most powerful features to enhance your coding skills. You’ll learn how to design and manage custom objects, as well as work with advanced patterns for handling collections and functions. These concepts will help you write cleaner, more efficient code and leverage JavaScript’s unique capabilities to handle complex scenarios effectively.

There are 3 sections in this course:

1. Creating Custom Objects: Learn how to create custom objects using factory functions, constructor functions, and classes. Explore inheritance via the prototype chain, the use of methods like apply(), call(), and static methods, as well as defining getters, setters, and private fields for controlled property access.

2. Collections and Symbols: Discover efficient data management with JavaScript’s Map and Set collections, and explore Symbols, a unique, immutable data type for private or globally unique properties in objects.

3. Advanced Function Patterns and Generators: Master advanced function techniques including closures, IIFE’s, and recursion. Learn about throttling and debouncing to optimize function execution, and use generators to create controlled iterable sequences.

By the end of the course, you’ll have a wealth of knowledge on modern JS techniques and patterns, giving you the ability to write more efficient, scalable code.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

Creating Custom Objects
In this section, you’ll learn how to create custom objects through factory functions, constructor functions, and classes. We’ll explore inheritance through the prototype chain, as well as the usage of apply(), call(), static methods, and private fields. You’ll also learn how to define getters and setters to control property access in objects.
Read more
Collections and Symbols
JavaScript offers special collections like Map and Set for more efficient data management, which you’ll explore in this section. Additionally, you’ll learn about Symbols, a unique and immutable data type used to create private or globally unique properties on objects.
Advanced Function Patterns and Generators
This section covers advanced techniques for working with functions in JavaScript. You’ll dive into closures, immediately-invoked function expressions (IIFE’s), and recursion for more complex function handling. We’ll also explore throttling and debouncing to control function execution and introduce generators for creating iterable sequences in a more controlled manner.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores advanced function techniques like closures and IIFEs, which are essential for writing modular and maintainable JavaScript code
Covers Maps and Sets, which are modern data structures that offer performance benefits over traditional JavaScript objects in certain scenarios
Teaches throttling and debouncing, which are important optimization techniques for improving the performance of event-driven JavaScript applications
Explores creating custom objects using factory functions, constructor functions, and classes, which are fundamental patterns for object-oriented programming in JavaScript
Discusses the use of apply() and call(), which are essential for manipulating the `this` context of functions in JavaScript
Requires familiarity with basic JavaScript syntax and concepts, so learners should complete introductory courses before taking this advanced course

Save this course

Save Advanced JavaScript 3: Objects, Collections, Functions to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Advanced JavaScript 3: Objects, Collections, Functions with these activities:
Review JavaScript Fundamentals
Reinforce your understanding of basic JavaScript concepts like variables, data types, and control flow to prepare for the advanced topics covered in this course.
Browse courses on JavaScript Fundamentals
Show steps
  • Review data types and operators.
  • Practice writing basic functions.
  • Study control flow statements (if/else, loops).
Read 'Eloquent JavaScript'
Deepen your understanding of JavaScript fundamentals and object-oriented programming concepts by reading 'Eloquent JavaScript'.
Show steps
  • Read the chapters on objects and functions.
  • Complete the exercises at the end of each chapter.
Implement Custom Objects
Practice creating custom objects using factory functions, constructor functions, and classes to solidify your understanding of object creation patterns.
Show steps
  • Create objects using factory functions.
  • Implement objects using constructor functions.
  • Build objects using ES6 classes.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Blog Post: JavaScript Collections
Write a blog post explaining the differences between Map and Set collections in JavaScript, including use cases and performance considerations.
Show steps
  • Research Map and Set collections.
  • Write a draft outlining key differences.
  • Include code examples and use cases.
  • Edit and publish the blog post.
Explore Advanced Function Tutorials
Follow online tutorials to learn more about closures, IIFE's, and generators in JavaScript.
Show steps
  • Find tutorials on closures and IIFE's.
  • Study tutorials on JavaScript generators.
  • Implement examples from the tutorials.
Build a Simple Data Store
Create a simple data store using JavaScript Maps and Sets to manage and retrieve data efficiently.
Show steps
  • Design the data store structure.
  • Implement methods for adding, retrieving, and deleting data.
  • Write unit tests to ensure functionality.
Read 'You Don't Know JS: this & Object Prototypes'
Gain a deeper understanding of JavaScript's 'this' keyword and object prototypes by reading 'You Don't Know JS: this & Object Prototypes'.
View You Don't Know JS on Amazon
Show steps
  • Experiment with different object creation patterns.
  • Read the chapters on 'this' and prototypes.

Career center

Learners who complete Advanced JavaScript 3: Objects, Collections, Functions will develop knowledge and skills that may be useful to these careers:
Frontend Developer
A frontend developer builds user interfaces for websites and applications. This course helps a frontend developer use JavaScript effectively, especially with its unique object oriented and functional capabilities. The course's deep dive into custom objects, collections, and advanced function patterns directly translates into building more sophisticated and interactive user interface components. Understanding how to use factory functions, constructor functions, and classes to manage user interface elements is fundamental for a developer. Furthermore, the patterns of closures, IIFEs, and recursion covered in the course assist writing cleaner, more efficient code.
Web Application Developer
The role of a web application developer includes using JavaScript to build dynamic and complex web applications. This course is a good place to build a foundation in JavaScript to take your application development skills further. A web application developer uses object-oriented patterns to organize code, creating maintainable and scalable applications. The advanced function techniques like closures, IIFE’s, and generators, all covered in this course, are important when building the complex logic of many web applications. Furthermore, the course's focus on efficient data management through collections is helpful when managing data in web applications.
UI Developer
A UI developer focuses on building the user interface and user experience for web applications. This course helps a UI developer by enabling them to build more performant and well structured components using JavaScript. The course's exploration of custom objects, collections, and advanced functions is useful for optimizing the performance of user interfaces. The ability to use factory functions, constructor functions, and classes, and the knowledge of how to control property access through getters and setters are vital for building complex UI components that must be well organized. Also, the course's advanced function patterns such as closures, IIFEs, and recursion help write cleaner code.
Full-Stack Developer
A full stack developer is proficient in handling both frontend and backend development tasks. This course is useful for a full stack developer by improving their ability to handle complex JavaScript requirements on the frontend. A deep understanding of custom objects and advanced function patterns, as taught in this course, plays a critical role in developing robust and scalable web applications. Understanding how to use Map and Set collections, for instance, when managing data is important for both the frontend and backend. With knowledge of tools such as IIFE's, a full stack developer can write cleaner and more efficient code for both client and server side.
User Interface Engineer
The role of a user interface engineer involves creating and implementing user interfaces, often requiring a deep understanding of Javascript, among other technologies. This course can help a user interface engineer by increasing their ability to implement complex and interactive user interface elements. Understanding how to create custom objects, manage collections, and implement robust function patterns provides important skills for a user interface engineer. The knowledge of Map and Set collections is beneficial when managing large collections of data in user interfaces. Additionally, the techniques of closures, IIFEs, and generators helps implement clean and efficient code.
Mobile Application Developer
Mobile application developers create apps for mobile devices, and JavaScript is often a key language when using frameworks like React Native. This course helps mobile application developers by increasing their understanding of advanced JavaScript that can be used in mobile applications. The course's focus on custom objects, collections, and advanced functions is beneficial to develop more interactive and dynamic user interfaces in mobile apps. Understanding how to use factory functions and constructor functions, as well as controlling property access with getters and setters, is critical when building scalable components. The use of advanced function patterns, such as closures and IIFE's is beneficial to writing clean code.
Data Visualization Developer
A data visualization developer uses JavaScript libraries to create interactive charts and graphs. This course helps a data visualization developer by improving their skill in using JavaScript to build custom visualizations. Data visualization often involves working with complex data structures and sophisticated interactive features. The course's deep dive into custom objects, managing collections with Map and Sets, and using advanced function patterns is valuable when handling data manipulation and rendering. It will help one structure code and write it more efficiently.
JavaScript Engineer
A JavaScript Engineer specializes in the intricacies of JavaScript and often works on complex components that require deep understanding of the language. This course may be useful. It helps the engineer master the nuances of JavaScript, including custom objects, collections, and advanced function patterns. The course’s focus on managing objects with factory functions, constructor functions, and classes, as well as private fields and the prototype chain, is critical for a JavaScript Engineer who often deals with complex data structures and component architecture. Additionally, advanced techniques such as closures, IIFE's, and generators are necessary for sophisticated JavaScript development.
Software Engineer
Software engineers frequently use JavaScript in various projects including web and application development. This course may be useful to enhance a software engineer's proficiency in advanced JavaScript concepts, which is a valuable skill. The course’s deep dive into creating custom objects, managing collections, and exploring advanced function patterns is useful when writing more efficient and scalable JavaScript code. The knowledge of Map and Set collections is particularly important for managing large collections of data. Furthermore, the techniques of closures, IIFE's, and generators are applicable to software engineering tasks of all kinds.
Software Developer
A software developer writes and maintains code for various software programs. This course may be useful for software developers by reinforcing their skills in advanced JavaScript concepts. Software developers are often presented with unique problems that require deep knowledge of the language. The course's deep dive into creating custom objects, managing collections, and exploring advanced function patterns can help write more efficient and scalable code. The knowledge of Map and Set collections will be useful for managing data. The techniques of closures, IIFE’s, and generators are useful for solving complex problems.
Application Developer
An application developer creates software applications for various platforms, and JavaScript is often part of their toolkit. This course may be useful for an application developer. It can provide a better understanding of advanced JavaScript concepts, leading to better performance in applications. The use of object oriented programming in JavaScript can be a useful alternative in different application development situations. The advanced function patterns, such as closures, IIFE's, and generators, are important when building more sophisticated applications. The course's focus on efficient data management through collections is useful for managing application state.
Web Designer
A web designer creates the visual layout and design of websites, often using JavaScript for interactive elements. This course helps a web designer implement more advanced interactive features by giving a concrete knowledge of object oriented programming in JavaScript. The course may be useful by providing a good foundation to handle more complex interactions and animations. The ability to understand custom objects and advanced function patterns, such as closures and IIFEs, allows for more elegant programming. Also, a grasp of collections like Map and Set makes data management more efficient.
Game Developer
A game developer builds the mechanics and functionality of video games, and JavaScript can be a useful choice when using certain game engines. This course may be useful for a game developer who wants to improve their JavaScript skills. They can use the knowledge of JavaScript's object oriented features to add complexity to games. The course’s coverage of advanced function patterns such as closures, IIFEs, and generators, is helpful when designing sophisticated game mechanics. Understanding collections can be valuable for managing game state and entities. This course will be helpful in managing game code.
Technology Consultant
A technology consultant advises organizations on how to use technology effectively, recommending specific tech stacks which may include JavaScript. This course may be useful in improving a technology consultant's skill in JavaScript. A consultant may need to understand how complex JavaScript applications work to advise on the proper choice of software. The course helps build a foundation that enables understanding how the language is used in complex applications. The course’s focus on object oriented patterns as well as function patterns makes it an important starting point for a consultant.
Software Architect
A software architect is responsible for designing the overall structure of software systems, often including which languages to use for which part of the stack. This course may be useful for a software architect as they consider the role of Javascript. The course can help build a foundation to understand how complex JavaScript code is structured and how it fits into larger systems. The course's exploration of custom objects, collections, and advanced function patterns gives insights into the patterns that can be used to write more scalable and maintainable code. The course will be helpful in understanding the complexities of JavaScript.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Advanced JavaScript 3: Objects, Collections, Functions.
Eloquent JavaScript provides a comprehensive introduction to the language, covering topics from basic syntax to advanced concepts like object-oriented programming and functional programming. It's particularly useful for solidifying your understanding of JavaScript's core principles and preparing you for the more advanced patterns discussed in this course. is often used as a textbook in introductory JavaScript courses. It provides a solid foundation for understanding the more advanced topics covered in this course.
Delves into the intricacies of 'this' keyword and object prototypes in JavaScript. It's highly recommended for understanding how inheritance works and how to effectively use object-oriented patterns. While not a prerequisite, it provides a deeper understanding of the concepts covered in the 'Creating Custom Objects' section. This book is more valuable as additional reading to deepen your understanding.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser