在result()
方法中,每当涉及到else部分时,我都需要退出函数callthis()。
它不应该执行kumar()
函数。
这可能吗? 实际上,我可以这样使用
if(result) //if this method is true, it will come inside
{
kumar();
}
但这不是我想要的。从result()
方法返回false时,它应该退出循环function calthis()
function calthis()
{
var i=1;
if(i==0)
{
alert("inside if");
}
else
{
alert("inside else");
result();
kumar();
}
}
function result()
{
var res = confirm("are you wish to continue");
if(res==true)
{
return true;
alert("inside if result");
}
else
{
return false;
}
}
function kumar()
{
alert("inside kumar");
}
<a href="" onclick="calthis();">Click here</a>
答案 0 :(得分:3)
这里有一堆错误。
首先,if (result)
只是测试变量result
是否包含真值,它实际上并没有调用该函数。如果要测试函数的返回值,则需要
if (result()) {
其次,您并不了解return
立即离开当前功能。你不能有意义地这样做:
if(res==true)
{
return true;
alert("inside if result");
}
无法联系到alert
。遇到return true
时,该函数立即返回。
第三,要提前退出callThis
,您只需提前return
。由函数callThis
决定有条件地返回;你不能强迫从result
函数内部返回。如果调用它的上下文,函数不能强制返回。它不是result
函数的内部结构来确定kumar
是否应该运行。您不能直接影响调用方法中的执行路径。所有result
可以做的就是返回一些东西,或者(在这种情况下不必要地复杂)接受回调并有条件地执行它。
如果return
的结果为false,则callThis
只需result()
:
function calthis()
{
var i=1;
if(i==0)
{
alert("inside if");
}
else
{
alert("inside else");
if (!result()) return;
kumar();
}
}
答案 1 :(得分:0)
要退出任何功能,只需使用return;
但是,如果用户点击确认,您似乎想调用一个函数,这是正确的吗?如果是这样的话:
var res = confirm("are you wish to continue");
if (res === true)
{
kumar();
}
如果您想要在用户未单击确认时调用函数:
var res = confirm("are you wish to continue");
if (!res)
{
kumar();
}
答案 2 :(得分:-1)
你有很多令人困惑的代码,但如果想要停止一个功能,只需使用&#34; 返回false; &#34;并且代码执行停止