Авторы Оуэн Лэмб и Катя-Яни Вьяс

JavaScript — это бесклассовый язык программирования. Это сильно отличается от классических языков, таких как ruby, где классы могут наследоваться от других классов, а объекты создаются внутри классов. В javaScript наследование основано на прототипах, нет классов и объектов, наследуемых от других объектов. Прототип — это внутренний объект JavaScript, который позволяет другим объектам наследовать свойства. В нашем приложении термостата, например, мы создали переменный термостат, который является функцией, и мы придали объекту другие свойства посредством прототипирования. Посмотрите на пример кода ниже:

var Thermostat = function(){
 this.currentTemperature = 20;
 this.maximumTemperature = 25;
};
Thermostat.prototype.temperature = function() {
 return this.currentTemperature;
}; //Our Thermostat object inherits Thermostat.temperature function
Thermostat.prototype.increase = function() {
 if (this.currentTemperature < this.maximumTemperature){
 return this.currentTemperature+=1;
 }
 return this.currentTemperature;
};//Our Thermostat object inherits Thermostat.increase function

Эти объекты можно расширять, повторно использовать и модифицировать для добавления дополнительных функций по мере разработки вашего приложения.