Десятая программа: «Дом, который построил Кекс»

Написал программу “Десятая программа: «Дом, который построил Кекс»”. В браузере работает правильно, а проверку пройти не может. Поясните в чем дело!

let materialPrice = {
‘wood’: 1000,
‘stone’: 1500,
‘brick’: 2000
};

let house = {
rooms: 3,
floors: 6,
material: ‘wood’,
coefficient: 5.5
};

house.calculateSquare = function (){

Square = (this.rooms * this.coefficient * this.floors);

return Square;

};

Square = house.calculateSquare();

console.log(Square + ’ Площадь.’);

house.calculatePrice = function (material){

Price = Square * materialPrice[material];

return Price;

};

Price = house.calculatePrice(house.material);

console.log(Price + ’ Площадь.’);

Дело в том, что методы нужно было записать в качестве свойств через запятую для объекта house. Тогда всё сработает и в тренажёре.

let materialPrice = {
‘wood’: 1000,
‘stone’: 1500,
‘brick’: 2000
};

let house = {
rooms: 10,
floors: 5,
material: ‘wood’,
coefficient: 10.5,
calculateSquare: function() {
return this.rooms * this.coefficient * this.floors;
},
calculatePrice: function() {
return materialPrice[this.material] * this.calculateSquare();
}
}

1 лайк

мой вариант решения:

let materialPrice = {
‘wood’: 1000,
‘stone’: 1500,
‘brick’: 2000
};

let house = {
rooms: 10,
floors: 5,
material: ‘wood’,
coefficient: 10.5,

calculateSquare: function (square) {
square = this.rooms * this.coefficient * this.floors;

return square;

},

calculatePrice: function (constructionPrice) {
constructionPrice = this.calculateSquare() * materialPrice[this.material];

return constructionPrice;

}
};

let materialPrice = {
  'wood': 1000,
  'stone': 1500,
  'brick': 2000
};

let house = {
  rooms: 10,
  floors: 5,
  material: 'wood',
  coefficient: 10.5,
  
  calculateSquare: function () {
    return this.rooms * this.coefficient * this.floors;
  },
  calculatePrice: function() {
    return materialPrice[this.material] * this.calculateSquare();
  }
};