繁体   English   中英

函数未运行/正在正确调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM