이 시뮬레이션 자바 스크립트 커피 머신을 만들었는데 두 가지 방법에 문제가 있습니다. 하나는 물 (예 : 커피)을 추가하고 다른 하나는 비어 있습니다. 이것이 내가 첫 번째 방법으로 얻은 것입니다.
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와 addWather의 합계를 수집 할 새 변수를 생성하지 않는 것입니까, 아니면 다른 것을 놓치고 있습니까?
두 번째 방법은 물을 비우고 물의 현재 상태가 우리가 전달하는 값보다 큰지 확인해야합니다. 내가 이거 가지고있어:
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;
},
새 총액을 확인하면 조건이 작동합니다.
....
} else if (this.water + Number(addWater) < 400) {
addWater = Number(addWater);
this.water += addWater;
...
최신 정보
함수 에서 매개 변수 water
를 addWater
로 변경해야한다고 생각합니다 emptyWater
.
emptyWater: function (addWater) {
if (this.water > addWater) {
this.water -= addWater;
this.waterStatus();
...
addWater
함수에서 다음과 같이 사용할 수 있습니다 .
...
} else if (this.water < 400) {
addWater = Number(addWater);
this.water += addWater;
this.emptyWater(addWater);
...
그리고 다음과 waterStatus
같습니다.
waterStatus: function () {
document.getElementById('water-status').innerText = this.water;
},
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다