为什么这个类不返回false ||真正?

时间:2013-03-04 14:32:49

标签: javascript

我有这个班级

Class.V = function(v) {
    if (v.BooleanValue == true) {
        v.Success();
    } else {
        v.Fail();
    }

    return Class;
}

我有一个按钮,它将执行一个函数,该函数将返回true或false以使用该表单进行处理。

<input type="submit" onclick="return check()" Value="Check" />


function check() {
    Class.V({
        BooleanValue: true,
        Success: function() {
            return true;
        },
        Fail: function() {
            return false;
        }
    })

但它确实有效。这项工作改为:

function check() {
    Class.V({
        o: true,
        Success: function() {
            results = true;
        },
        Fail: function() {
            results = false;
        }
        return results;
        //now works as expected
        })

为什么会这样?

4 个答案:

答案 0 :(得分:1)

根据您当前的代码,您必须从外部函数传播内部函数的返回值:

Class.V = function(v)
{
    if (v.BooleanValue) {
        return v.Success();
    } else {
        return v.Fail();
    }

    return Class;
}

答案 1 :(得分:0)

您需要进一步返回v.Successv.Fail函数返回Class.V的值:

if (v.BooleanValue) {
    return v.Success();
    // ^ return here
} else {
    return v.Fail();
    // ^ and here
}

答案 2 :(得分:0)

您需要返回方法的值:

Class.V = function(v)
{
if(v.BooleanValue==true)
{
   return v.Success();
}
else{
   return v.Fail();
}
}

答案 3 :(得分:0)

return仅影响当前函数调用,而不影响链。对于第一个代码块,return true;仅从匿名回调中返回。你必须传递它。像这样:

Class.V = function(v) {
    return v.BooleanValue ? v.Success() : return v.Fail();
}

function check() {
    return Class.V({
      BooleanValue: true,
      Success:function() {
          return true;
      },
      Fail:function() {
          return false;
      }
    })
}