Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
/*Класс Электрическая Сеть*/
function ElectricNetwork() {
  this.listElements = [];
}
ElectricNetwork.timeOfDay = {};
ElectricNetwork.timeOfDay.AFTERNOON = 'afternoon';
ElectricNetwork.timeOfDay.NIGHT = 'night';
ElectricNetwork.prototype.makeBalance = function(timeOfDay) {
  this.balance = 0;
  
  for (var i = 0; i < this.listElements.length; i++) {
    this.balance += this.listElements[i].showPower(timeOfDay);
  }
  
  return this.balance;
};
ElectricNetwork.prototype.calcGenIntake = function() {
  
};
ElectricNetwork.prototype.calcPrice = function() {
  
};
ElectricNetwork.prototype.addNewElement = function(element) {
  if (!(element instanceof ElementsNetwork)) {
    throw new Error("Нельзя добавить объект, ненаследующийся от ЭлементаСети!");
  }
  
  this.listElements.push(element);
};
ElectricNetwork.prototype.removeElement = function(element) {
  
};
/*Класс Элемент Электрической Сети*/
function ElementsNetwork() {
  
}
ElementsNetwork.prototype.showPower = function(timeOfDay) {
  return this.power[timeOfDay];
};
/*Класс Электростанция*/
function Powerhouse(generatedPower) {
  this.power = {};
  this.power[ElectricNetwork.timeOfDay.AFTERNOON] = generatedPower / 2;
  this.power[ElectricNetwork.timeOfDay.NIGHT] = generatedPower / 2 ;
}
var constructor = this.constructor;
Powerhouse.prototype = Object.create(ElementsNetwork.prototype);
Powerhouse.prototype.constructor = constructor;
/*Класс Солнечная Панель*/
function SolarPanel(generatedPower) {
  this.power = {};
  this.power[ElectricNetwork.timeOfDay.AFTERNOON] = generatedPower;
  this.power[ElectricNetwork.timeOfDay.NIGHT] = 0;
}
constructor = this.constructor;
SolarPanel.prototype = Object.create(ElementsNetwork.prototype);
SolarPanel.prototype.constructor = constructor;
/*Класс Дом*/
function House(costsAfternoon, costsNight, persons) {
  this.costsAfternoon = costsAfternoon;
  this.costsNight = costsNight;
  this.persons = persons;
  
  this.power = {};
  this.calcCostsAfternoon();
  this.calcCostsNight();
}
constructor = this.constructor;
House.prototype = Object.create(ElementsNetwork.prototype);
House.prototype.constructor = constructor;
House.prototype.calcCostsAfternoon = function() {
  this.power[ElectricNetwork.timeOfDay.AFTERNOON] = - this.costsAfternoon * this.persons;
};
House.prototype.calcCostsNight = function() {
  this.power[ElectricNetwork.timeOfDay.NIGHT] = - this.costsNight * this.persons;
};
/*Класс Линия Электропередач*/
function PowerLine(bandwidth, price) {
  this.bandwidth = bandwidth;
  this.price = price;
}
var constructor = this.constructor;
PowerLine.prototype = Object.create(ElementsNetwork.prototype);
PowerLine.prototype.constructor = constructor;
/*Применение*/
var electricNetwork1 = new ElectricNetwork();
var powerhouse1 = new Powerhouse(100);
var solarPanel1 = new SolarPanel(4);
var house1 = new House(0.004, 0.001, 200);
var powerLine1 = new PowerLine(20, 100);
electricNetwork1.addNewElement(powerhouse1);
electricNetwork1.addNewElement(solarPanel1);
electricNetwork1.addNewElement(house1);
/*electricNetwork1.addNewElement(powerLine1);*/
console.log(electricNetwork1.makeBalance(ElectricNetwork.timeOfDay.AFTERNOON));
console.log(electricNetwork1.makeBalance(ElectricNetwork.timeOfDay.NIGHT));
/*console.log(electricNetwork1.calcGenIntake());
console.log(electricNetwork.calcPrice());*/
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers