[英]Function not running/being called properly
变量vTotalPayment
不起作用。 我认为这是由于我如何调用函数,尽管我无法弄清楚自己在做什么错。 我知道这也可能是由于滥用switch语句引起的。
function begin() { var vTicketType = prompt('Please enter the type of ticket'); var vTicketQty = Number(prompt('Please enter amount required')); document.write('Ticket Type: ' + vTicketType + '<br />'); document.write('Ticket Qty: ' + vTicketQty + '<br />'); var vTicketPrice = calcPrice(vTicketType); var vTotalPayment = calcTotal(vTicketQty, vTicketPrice); document.write('Total Payment: ' + vTotalPayment); } begin(); function calcPrice(Prices) { var Price = 0; switch (vTicketType) { case 'A': Price = 100; break; case 'B': Price = 75; break; case 'C': Price = 50; break; default: Price = -1; } return (Price); } function calcTotal(Payments) { var Payment = (vTicketQty * vTicketPrice); return (Payment); }
您仅将一个参数传递给函数calcTotal,甚至没有使用它。 将您的calcTotal替换为以下代码,如果仍然无法正常运行,请在注释中告知我。
function calcTotal(vTicketQty, vTicketPrice) {
return (vTicketQty * vTicketPrice);
}
您的方法参数错误。 错误的参数数量和错误的名称。
取而代之的calcPrice(Prices)
我想应该是calcPrice(vTicketType)
和代替calcTotal(Payments)
这也许应该是calcTotal(vTicketQty, vTicketPrice)
function begin() { var vTicketType = prompt('Please enter the type of ticket'); var vTicketQty = Number(prompt('Please enter amount required')); document.write('Ticket Type: ' + vTicketType + '<br />'); document.write('Ticket Qty: ' + vTicketQty + '<br />'); var vTicketPrice = calcPrice(vTicketType); var vTotalPayment = calcTotal(vTicketQty, vTicketPrice); document.write('Total Payment: ' + vTotalPayment); } begin(); function calcPrice(vTicketType) { var Price = 0; switch (vTicketType) { case 'A': Price = 100; break; case 'B': Price = 75; break; case 'C': Price = 50; break; default: Price = -1; } return (Price); } function calcTotal(vTicketQty, vTicketPrice) { var Payment = (vTicketQty * vTicketPrice); return (Payment); }
您可以执行以下操作:
(function begin() { var vTicketType = prompt('Please enter the type of ticket'); var vTicketQty = Number(prompt('Please enter amount required')); document.write('Ticket Type: ' + vTicketType + '<br />'); document.write('Ticket Qty: ' + vTicketQty + '<br />'); var vTicketPrice = calcPrice(vTicketType); var vTotalPayment = calcTotal(vTicketQty, vTicketPrice); document.write('Total Payment: ' + vTotalPayment); })(); function calcPrice(vTicketType) { var Price = 0; switch (vTicketType) { case 'A': Price = 100; break; case 'B': Price = 75; break; case 'C': Price = 50; break; default: Price = -1; } return Price; } function calcTotal(vTicketQty, vTicketPrice) { var Payment = (vTicketQty * vTicketPrice); return Payment; }
为了获得最佳实践,您在返回付款或返回价格时不需要括号()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.