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 Hamburger() {
  
}
Hamburger.SIZE_SMALL = 'МАЛЕНЬКИЙ';
Hamburger.SIZE_BIG = 'БОЛЬШОЙ';
Hamburger.FILLING_CHEESE = 'СЫР';
Hamburger.FILLING_SALAD = 'САЛАТ';
Hamburger.FILLING_POTATO = 'КАРТОШКА';
Hamburger.ADDITIVE_SEASONING = 'ПРИПРАВА';
Hamburger.ADDITIVE_MAYO = 'МАЙОНЕЗ';
Hamburger.type = {};
Hamburger.filling = {};
Hamburger.additive = {};
Hamburger.type[Hamburger.SIZE_SMALL] = { price: 50, calor: 20 };
Hamburger.type[Hamburger.SIZE_BIG] = { price: 100, calor: 40 };
Hamburger.filling[Hamburger.FILLING_CHEESE] = {  price: 10, calor: 20 };
Hamburger.filling[Hamburger.FILLING_SALAD] = { price: 20, calor: 5 };
Hamburger.filling[Hamburger.FILLING_POTATO] = { price: 15, calor: 10 };
Hamburger.additive[Hamburger.ADDITIVE_SEASONING] = { price: 15, color: 0 };    
Hamburger.additive[Hamburger.ADDITIVE_MAYO] = { price: 20, calor: 5 };
Hamburger.prototype.makeSelection = function(hamburger, filling, additive) {     /* метод для создания заказа */
  this.order = {};
  this.text = 'Ваш заказ: ';
  this.correctHamb = false;
  this.correctFill = false;
  
  for (var size in Hamburger.type) {
    if (hamburger == size) {
      this.order.hamburger = Hamburger.type[size];
      this.text += 'Гамбургер: ' + size + ', ';
      this.correctHamb = true;
    }
  }
  
  if (!this.correctHamb) { return 'Несуществующий вид гамбургера. Попробуйте снова.'; } /*Проверка на корректность*/
  
  for (var typeFilling in Hamburger.filling) {
    if (filling == typeFilling) {
      this.order.filling = Hamburger.filling[typeFilling];
      this.text += 'Начинка: ' + typeFilling;
      this.correctFill = true;
    }
  }
  
  if (!this.correctFill) { return 'Несуществующий вид начинки. Попробуйте снова.'; }   /*Проверка на корректность*/
  
  if (additive || (arguments[2] && additive === undefined)) {
    return this.makeAdditive(additive);
  } else { 
    this.correctAddi = true; 
    return this.text; 
  }
};
Hamburger.prototype.makeAdditive = function(additive) {    /*Добавка*/
  this.correctAddi = false;
  
  for (var typeAdditive in Hamburger.additive) {
    if (additive == typeAdditive) {
      this.order.additive = Hamburger.additive[typeAdditive];
      this.text += ', Добавка: ' + typeAdditive;
      this.correctAddi = true;
    }
  }
  
  if (!this.correctAddi) {                                          /* Проверка на корректность */
    return 'Несуществующий вид добавки. Попробуйте снова.';            
  } else {                                                         
    return this.text;
  }
};
Hamburger.prototype.calcPrice = function() {  /* метод рассчета суммы */
  this.generalPrice = 0;
  
  if (!this.correctHamb || !this.correctFill || !this.correctAddi) {
    return 'Сделайте заказ!';
  }
  
  for (var name in this.order) {
    this.generalPrice += this.order[name].price;
  }
  
  return 'Стоимость: ' + this.generalPrice;
};
Hamburger.prototype.calcCalor = function() {     /*метод рассчета калорийности*/
  this.generalCal = 0; 
  
  if (!this.correctHamb || !this.correctFill || !this.correctAddi) {
    return 'Сделайте заказ!';
  }
  
  for (var name in this.order) {
    this.generalCal += this.order[name].calor;
  }
  
  return 'Количество калорий: ' + this.generalCal;
};
var order1 = new Hamburger();
console.log(1);
console.log(order1.makeSelection(Hamburger.SIZE_BIG, Hamburger.FILLING_SALAD, Hamburger.ADDITIVE_MAYO));
console.log(order1.calcPrice());
console.log(order1.calcCalor());
var order2 = new Hamburger();
console.log(2);
console.log(order2.makeSelection(Hamburger.SIZE_SMALL, Hamburger.FILLING_POTATO));
console.log(order2.calcPrice());
console.log(order2.calcCalor());
var order3 = new Hamburger();
console.log(3);
console.log(order3.makeSelection(Hamburger.SIZE_BIG, Hamburger.FILLING_POTATO, Hamburger.ADDATIVE_SEASONING));
console.log(order3.calcPrice());
console.log(order3.calcCalor());
var order4 = new Hamburger();
console.log(4);
console.log(order4.calcPrice());
console.log(order4.calcCalor());
console.log(order4.makeSelection(Hamburger.SIZE_SMALL, Hamburger.FILLING_SALAD));
var order5 = new Hamburger();
console.log(5);
console.log(order5.makeSelection(Hamburger.SIZE_MIDDLE, Hamburger.FILLING_SALAD));
console.log(order5.calcPrice());
console.log(order5.calcCalor());
Output

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

Dismiss x
public
Bin info
anonymouspro
0viewers