我有这个班级
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
})
为什么会这样?
答案 0 :(得分:1)
根据您当前的代码,您必须从外部函数传播内部函数的返回值:
Class.V = function(v)
{
if (v.BooleanValue) {
return v.Success();
} else {
return v.Fail();
}
return Class;
}
答案 1 :(得分:0)
您需要进一步返回v.Success
和v.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;
}
})
}