Есть подозрение что последнее задание не может быть пройдено.
В условии задания ничего не сказано про формат проверки и формат предоставления конечной информации. Код я написал, он выполняется и выполняется верно. Однако верификация выстроена на том, что подменяет значения свойств объекта, что и нужно, чтобы программа считала конечную стоимость исходя из разных значений свойств объекта - т.е. в одном случае площадь 500 метров и материал камень (с соответствующей ценой материала), в другом - 200 метров и другой материал. Вполне логично, что считающий скрипт должен быть написан в форме функции, которая меняла бы значения свойств. Скажем, функция CalculateHousePrice с методами (rooms, floors, material, coefficient) и верификатор вызывал бы эту функцию с рандомными аргументами -
CalculateHousePrice(10, 2, ‘stone’, 14.3)
CalculateHousePrice(5, 4, ‘wood’, 15)
и так далее.
Но в условии задания об этом не сказано! Там вообще не сказано ничего о том, как оформлять готовое задание. Снова повторюсь, что рабочий код я написал, но все значения там уже подставлены. Чтобы динамически менять значения, и таким образом скрипт проходил бы проверку, нужно чтобы мы знали имя функции, которую вызывает верификатор.
Если ничего не сказано о том, какое имя функции должно быть, то невозможно динамически менять значения свойств, соответственно, нельзя получать разные результаты.
Таким образом я не понимаю как сдать задание - похоже условие задания просто не дописано.
Вот мой код:
var materialPrice = {
‘wood’: 1000,
‘stone’: 1500,
‘brick’: 2000
};
var house = {
rooms: 10,
floors: 5,
material: ‘wood’,
coefficient: 10.5,
calculateSquare: function(param1, param2, param3) {
return (this.rooms * this.coefficient) * this.floors;
},
calculatePrice: function() {
return this.calculateSquare() * materialPrice.stone;
}
};
house.calculatePrice();