Javascript 函数未运行/未正确调用
变量Javascript 函数未运行/未正确调用,javascript,function,switch-statement,Javascript,Function,Switch Statement,变量vTotalPayment不起作用。我假设这是由于我调用函数的方式造成的,尽管我不知道我做错了什么。我知道这也可能是由于对switch语句的误用 函数begin(){ var vTicketType=prompt('请输入票据类型'); var vTicketQty=编号(提示(“请输入所需金额”); document.write('tickettype:'+vTicketType+''); 单据写入('ticketqty:'+vTicketQty+''); var vTicketPric
vTotalPayment
不起作用。我假设这是由于我调用函数的方式造成的,尽管我不知道我做错了什么。我知道这也可能是由于对switch语句的误用
函数begin(){
var vTicketType=prompt('请输入票据类型');
var vTicketQty=编号(提示(“请输入所需金额”);
document.write('tickettype:'+vTicketType+'
');
单据写入('ticketqty:'+vTicketQty+'
');
var vTicketPrice=calcPrice(vTicketType);
var vTotalPayment=calcTotal(vTicketQty,vTicketPrice);
单据书写('总付款:'+总付款);
}
begin();
功能计算(价格){
var价格=0;
开关(vTicketType){
案例“A”:
价格=100;
打破
案例“B”:
价格=75;
打破
案例“C”:
价格=50;
打破
违约:
价格=-1;
}
退货(价格);
}
calcTotal职能(支付){
var付款=(vTicketQty*vTicketPrice);
退货(付款);
}
您只将一个参数传递给函数calcTotal,甚至没有使用它。用下面的代码替换您的calcTotal,如果它仍然不起作用,请在注释中告诉我
function calcTotal(vTicketQty, vTicketPrice) {
return (vTicketQty * vTicketPrice);
}
你的方法有错误的参数。参数数量和名称错误 我认为应该是
calcPrice(vTicketType)
而不是calcPrice(Prices)
,应该是calcTotal(vTicketQty,vTicketPrice)
函数begin(){
var vTicketType=prompt('请输入票据类型');
var vTicketQty=编号(提示(“请输入所需金额”);
document.write('tickettype:'+vTicketType+'
');
单据写入('ticketqty:'+vTicketQty+'
');
var vTicketPrice=calcPrice(vTicketType);
var vTotalPayment=calcTotal(vTicketQty,vTicketPrice);
单据书写('总付款:'+总付款);
}
begin();
功能计算器(vTicketType){
var价格=0;
开关(vTicketType){
案例“A”:
价格=100;
打破
案例“B”:
价格=75;
打破
案例“C”:
价格=50;
打破
违约:
价格=-1;
}
退货(价格);
}
功能计算器(vTicketQty、vTicketPrice){
var付款=(vTicketQty*vTicketPrice);
退货(付款);
}
您可以执行以下操作:
(函数begin(){
var vTicketType=prompt('请输入票据类型');
var vTicketQty=编号(提示(“请输入所需金额”);
document.write('tickettype:'+vTicketType+'
');
单据写入('ticketqty:'+vTicketQty+'
');
var vTicketPrice=calcPrice(vTicketType);
var vTotalPayment=calcTotal(vTicketQty,vTicketPrice);
单据书写('总付款:'+总付款);
})();
功能计算器(vTicketType){
var价格=0;
开关(vTicketType){
案例“A”:
价格=100;
打破
案例“B”:
价格=75;
打破
案例“C”:
价格=50;
打破
违约:
价格=-1;
}
退货价格;
}
功能计算器(vTicketQty、vTicketPrice){
var付款=(vTicketQty*vTicketPrice);
退还款项;
}
调用函数时,使用的是2个参数,但在函数定义中只有1个参数。也许这是错的。您需要同时使用vTicketQty和vTicketPrice作为参数。试试看。这样地。。。。函数calcTotal(vTicketQty,vTicketPrice){var Payment=(vTicketQty*vTicketPrice);return(Payment)}其原因,您没有像在函数calcPrice中那样声明您正在使用的变量:您正在将vTicketType
传递给switch语句而不是价格,并且在函数calcTotal
中您正在使用未定义的变量。您可以尝试将此作为switch的替代。注意这是优化。下面的答案指出了问题的实际原因