学习 JS,试图从 HTML Acedemy 解决一个问题,得到奇怪的错误。
任务如下所示:
let materialPrice = {
'wood': 1000,
'stone': 1500,
'brick': 2000
};
let house = {
rooms: 10,
floors: 5,
material: 'wood',
coefficient: 10.5
};
/* Техническое задание
Мяу! Допиши за меня конфигуратор. Я создал объект house и задал ему несколько свойств: rooms (количество комнат), floors (этажи), material (материал для стен), coefficient (средняя площадь каждой комнаты).
Ещё я завёл мапу materialPrice, в которой записал стоимость каждого возможного материала для строительства.
Добавь в объект два метода: calculateSquare, который будет возвращать площадь дома, и calculatePrice, который будет возвращать стоимость строительства.
Площадь считай так: умножь количество комнат на коэффициент и число этажей в доме.
Цена строительства — произведение площади и стоимости материала дома.
*/
这是我的解决方案:
let materialPrice = {
'wood': 1000,
'stone': 1500,
'brick': 2000
};
let buildHouse = function (rooms, floors, material, coefficient) {
let house = {
rooms: 10,
floors: 5,
material: 'wood',
coefficient: 10.5,
calculateSquare: function () {
return this.rooms * this.coefficient * this.floors;
},
calculatePrice: function () {
return calculateSquare * materialPrice[this[material]];
}
}
return house;
}
buildHouse();
我收到一个错误
我尝试了不同的选项,包括通过函数传递的映射属性:
let house = {
rooms: rooms,
floors: floors,
material: material,
coefficient: coefficient
};
尝试在 home 对象下创建和调用函数。尝试了很多东西,要么删除了房子对象,要么没有定义 calculateSquare 方法。