Javascript ES6箭头功能。返回未定义

Javascript ES6箭头功能。返回未定义,javascript,undefined,arrow-functions,Javascript,Undefined,Arrow Functions,我一直在努力理解箭头函数。我知道函数isValidCard返回true,但是当我将isValidCard传递给validatePayment时,isValidCard变为未定义 <form name="payment" action="#" onsubmit="return validatePayment();" method="post"> <ul> <li><label for="cardid">Card Number

我一直在努力理解箭头函数。我知道函数isValidCard返回true,但是当我将isValidCard传递给validatePayment时,isValidCard变为未定义

<form name="payment" action="#" onsubmit="return validatePayment();" method="post">
     <ul>
       <li><label for="cardid">Card Number *</label></li>
       <li><input type="number" name="cardid" id="cardid"></li>

       <li><label for="expiryid">Expiry Date *</label></li>
       <li><input type="number" name="expiryid" id="expiryid"></li>

       <li><label for="cvcid">CVC Number *</label></li>
       <li><input type="number" name="cvcid" id="cvcid"></li>

     </ul>
     <input type="submit" name="submit" value="Submit">
   </form>

let validatePayment = (isValidCard, isValidExpiry, isValidCvc) => {
 validateCard();
 alert(isValidCard);
 if (!isValidCard || !isValidExpiry || !isValidCvc) {
   alert("Payment details not accepted");
   return false;
 }
 alert("Payment details accepted");
 return true;
};

let validateCard = () => {
 const card = document.payment.cardid;
 const isValidCard = card.value.length === 10;

 if (!isValidCard) {
   alert("Card Number must be 10 numbers");
 }
 return isValidCard;
}; 

  • 卡号*
  • 有效期*
  • CVC数*
让validatePayment=(isValidCard、isValidExpiry、isValidCvc)=>{ validateCard(); 警报(iValidCard); 如果(!isValidCard | | |!isValidExpiry | |!isValidCc){ 警报(“不接受付款明细”); 返回false; } 警报(“接受付款详情”); 返回true; }; 让validateCard=()=>{ const card=document.payment.cardd; const isValidCard=card.value.length==10; 如果(!isValidCard){ 警报(“卡号必须为10号”); } 返回isValidCard; };
isValidCard
参数是函数吗?调用
validateCard()但忽略返回值。。。。您没有显示如何调用
validatePayment
——我想您可能也忽略了那里的返回值。。。箭头函数与常规函数一样工作-主要区别在于
这个
是什么(与您的代码无关)以及
参数
没有在它们内部定义这一事实-同样,与您的代码步骤一无关。。。显示如何调用
validatePayment
-包括参数是什么。。。然后有人可以告诉你你在做什么wrong@JaromandaX我已经更新了如何调用validatePayment