if条件返回false时退出闭包函数

时间:2017-08-31 11:39:15

标签: javascript jquery

我有一个子函数alertMSGS,所以alertMSGS函数检查四个变量中的值并给出一个它们不相等的警告消息,因此它将返回false给父函数,它是DoSave()的一个闭包函数,来自我的知识(Begginer到Javascript)。因此,如果返回为假,我需要退出保存,否则需要执行保存。 !见下文 。 非常感谢提前

function alertMSGS(){
      var currentWeekEarning = parseFloat( $("#_fid_19").val() );
      var totalYearEarning= parseFloat( $("label[for=_fid_39]").next("div").text().replace('$', '').replace(',', '') );
      var currentLoss = parseFloat($("#_fid_20").val());
      var totalYearLoss= parseFloat($("label[for=_fid_38]").next("div").text().replace('$', '').replace(',', '') )
      if( (currentWeekEarning != totalYearEarning) ){
        alert("currentWeekEarning  Not Equal to totalYearEarning");
        return false;

      }
      if ( currentLoss != totalYearLoss) {
        alert(' currentLoss Not Equal to totalYearLoss');
        return false;
      }
    }


    DoSave = (function(fn){
      return function(){
      var resultofalertMSGS = alertMSGS();
      if (resultofalertMSGS === false) {
       // so if the function returns  false then  i need to exit from the (DoSave Function) and if it satisfies then i need to perform the (DoSave Function)
      }
        var result=fn.apply(fn, arguments);
        return result;
      }
    })(DoSave);

2 个答案:

答案 0 :(得分:0)

只是一个想法如何实现它。尝试。

DoSave = (function(fn){

      var resultofalertMSGS = alertMSGS();
      if (resultofalertMSGS) {
      (DoSave); // do here what u want to do for saving data

      }

        var result=fn.apply(fn, arguments); // decide whether it should come inside if or else
        return result;
      }
    })

答案 1 :(得分:0)

略微更改了代码,为我工作。任何方式谢谢

   DoSave = (function(fn){
      return function(){
      var resultofalertMSGS = alertMSGS();
      if (resultofalertMSGS === false) {
          return false;      
      }else{
        var result=fn.apply(fn, arguments);
        return result;
      }
    }
    })(DoSave);