OOP

Learn more about OOP if you know nothing about it.

JavaScript is a prototype-based object oriented language. In other words, it has objects, but does not have classes. New objects will be created by copying properties from its prototype. Additionally, you must understand, that functions are also objects in JavaScript. Thus, properties having value of type Function can be considered as methods.

Although initially JavaScript didn't designed for OOP, you can emulate some features of OOP. Here a function body will be as class description and a function call with operator new as constructor call. The function context, accessible via this, or the return value will be an instance of the class. And the special property prototype allows to organize inheritance.

New class syntax, introduced in ECMAScript 2015 (aka ES6), mostly is syntactical sugar. And it is not introduce a new object-oriented inheritance model.