当我在提示0处输入时,我预计会发出警报“停止”,但会收到“转” . 你能帮我把警报“停止”吗?
var toyota = {
make: "Toyota",
model: "Corolla",
fuel: 0,
tank: function(addingfuel) {
this.fuel = this.fuel + addingfuel;
},
start: function() {
if (this.fuel === 0) {
alert("stop");
} else {
alert("go");
}
},
};
var addingfuel = prompt("Please enter fuel added", "liter");
toyota.tank();
toyota.start();
4 回答
如果您更改此代码,它将正常工作
至
你必须用你的
tank(addingfuel)
函数传递addingfuel
其他明智的addingfuel
包含 undefined 所以最后它会显示 go 而不是 stop .N.B
addingfuel
的值是 string 所以你要像_41629那样把它投射到 integer 否则你的this.fuel === 0
条件会失败试试这个,
window. prompt
返回字符串类型作为返回值 . 这就是为什么当你将fuel
(数字)添加到addingfuel
(字符串)时,它会导致"00"
并且您的条件失败 .为了解决此问题,您应该在使用该值之前将字符串转换为数字 .
您需要稍微更改一下代码
Explanation 当你在调用toyota.tank()时没有传递任何内容时,这会将参数视为未定义,并使用数字附加undefined会给你NaN