Для того чтобы создать объект с одними и теми же свойствами и методами в объектно-ориентированных языках, как правило, применяют классы. Несмотря на то, что языком JavaScript поддерживаются типы данных, называемые объектами, в самом языке отсутствует формальное понятия классов. С одной стороны, в этом заключается значительное отличие JavaScript от классических объектно-ориентированных языков, к примеру Jаva или C++, общей чертой которых, является факт строгой типизации и поддержки механизмов наследования на базе классов, а значит — JavaScript теоретически исключается из состава истинных объектно-ориентированных языков программирования. С другой же стороны, язык JavaScript работает в среде активного применения объектов, он обладает особым типом наследования на базе прототипов. То есть, на практике, JavaScript можно называть объектно-ориентированным языком. На создание JavaScript повлияло сразу несколько прочих объектно-ориентированных языков, процесс наследования в которых, работает на базе прототипов, а не под основой классов, как таковых. Даже учитывая то, что JavaScript является объектно-ориентированным языком, не базирующемся на основе классов, он достаточно хорошо производит имитацию возможностей таких языков программирования, базируемых на классах, как С++ и Jаva.

Для понимания работы объектно-ориентированного JavaScript, начинать следует с определения нескольких базовых терминов. Итак, объект JavaScript представляет из себя некоторую структуру данных, содержащую разнообразные фрагменты именованных данных, также имеется возможность содержания методов для работы с такими фрагментами данных. При помощи объекта, группируются связанные значения и методы в единый набор, комфортный для пользователя, облегчающий сам процесс программирования, также, в данном процессе, возрастает степень модульности и возможностей многократного применения кода JavaScript.

Объекты имеют возможность обладать произвольным числом свойств, свойства имеют возможность быть добавленными в объекты динамически. К примеру, строго типизированные языки С++ и Jаva, не обладают такими возможностями, в них любые объекты имеют наборы свойств, являющиеся предопределенными, а любые свойства обладают предопределёнными типами.

Имитация языком JavaScript объектно-ориентированных приёмов программирования, осуществляется с помощью объектов JavaScript, в основном, посредством преждевременного определения набора свойств каждому объекту и типу данных, которые содержатся в каждом из свойств.

С++ и Jаva, предполагают определение структуры объектов при помощи классов. Классы в точности задают поля, содержащиеся в объектах, а также типы данных таких полей. Классы определяют методы работы с объектами. JavaScript не имеет понятия формальных «классов», данный язык программирования реализует приближенные возможности классов, применяя конструкторы и объекты-прототипы.

Как в JavaScript, так и в объектно-ориентированных языках, основывающихся на классах, допускается наличие множества объектов одного класса. Нередко можно видеть, что объектами считаются экземпляры классов, а значит — возможно одновременное существования множества экземпляров любых классов. Периодически, в целях описания объектов (экземпляров классов), применяют термин «создание экземпляра».

Язык Jаva, полагается на такую практику программирования, в которой классам присваиваются имена с первой прописной буквы, а объектам присваиваются имена со всеми строчными буквами. Данный процесс оказывает помощь в отличии классов и объектов в исходном тексте. В языке JavaScript рекомендуется также придерживаться данному процессу, в целях корректного написания программы.