【发布时间】:2021-05-17 05:58:33
【问题描述】:
我要制作这个模拟 JavaScript 咖啡机,但我遇到了两种方法的问题,一种是加水(例如咖啡),另一种是空的。 这是我第一种方法得到的:
let coffeeMachine = {
water: 400,
coffee: 10,
milk: 100,
credit: 100,
waterStatus: function () {
document.getElementById('water-status').innerText = this.water;
},
addWater: function () {
let addWater = prompt('Unesite kolicinu vode koju zelite da dodate');
if (addWater === null || addWater.trim().length === 0) {
alert('Morate uneti koliko vode zelite');
return;
} else if (isNaN(addWater) || addWater.startsWith('-') || addWater % 1 !== 0) {
alert('Unos mora biti pozitivna brojcana vrednost');
return;
} else if (this.water < 400) {
addWater = Number(addWater);
this.water += addWater;
} else {
alert('Maksimalan unos vode je 400');
return;
}
this.waterStatus();
},
这个的问题是总值不能大于400,而且只有在我第一次输入大于400的值时才有效(弹出警告),但是如果加100,超过500就会写它(600),不考虑条件。 是我没有创建新变量来收集 this.water 和 addWath 的总和,还是我遗漏了其他东西?
第二种方法需要排空水,检查水的当前状态是否大于我们转发器提示的值。 我有这个:
emptyWater: function (water) {
if (this.water > addWater) {
this.water -= addWater;
this.waterStatus(water);
document.getElementById('message').innerText = 'Pouring water';
} else {
document.getElementById('message').innerText = 'Machine is out of water \n';
}
},
在对象本身中,我为水、咖啡等预定义了值。
我在水状态函数中收集的那些值,但我不是动态的吗?
waterStatus: function () {
document.getElementById('water-status').innerText = this.water;
},
【问题讨论】:
标签: javascript object methods javascript-objects