【发布时间】:2017-03-27 06:01:34
【问题描述】:
变量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);
}
【问题讨论】:
-
当您调用函数时,您使用的是 2 个参数,但在您的函数定义中,您只有 1 个参数。可能那是错的。您需要同时使用 vTicketQty 和 vTicketPrice 作为参数。试试看。像这样...... function calcTotal(vTicketQty,vTicketPrice) { var Payment = (vTicketQty * vTicketPrice);退货(付款); }
-
这是因为,您没有像在函数 calcPrice 中那样声明您正在使用的变量:您将
vTicketType传递给 switch 语句而不是价格,并且在函数calcTotal中您正在使用未定义的变量. -
你可以试试这个作为switch的替代品。 JSFiddle。请注意,这是优化。下面的答案指出了问题的实际原因
标签: javascript function switch-statement