JavaScript 确认函数 OK 和 取消 返回相同的结果

javascript confirm function ok and cancel returns same result

本文关键字:结果 返回 取消 确认 函数 OK JavaScript      更新时间:2023-09-26

result()方法中,每当涉及到其他部分时,我都需要摆脱函数callthis((。

它不应该执行kumar()函数。

这可能吗?其实我可以这样用

if(result)          //if this method is true, it will come inside
{
    kumar();
}

但这不是我想要的。 从方法返回 false result()时,它应该脱离循环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>

这里有一堆错误。

首先,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所能做的就是返回一些东西,或者(在这种情况下不必要地复杂(接受回调并有条件地执行它。

只需从callThis return,如果result()的结果是假的:

function calthis()
{
  var i=1;
  if(i==0)
  {
    alert("inside if");
  }
  else
  {
    alert("inside else");
    if (!result()) return;
    kumar();
  }
}

要退出任何函数,只需使用 return;

但是,如果用户单击确认,您似乎想要调用一个函数,这是正确的吗? 㞖:

var res = confirm("are you wish to continue");
if (res === true) 
{ 
   kumar(); 
}

如果要在用户未单击确认的情况下调用函数:

var res = confirm("are you wish to continue");
if (!res) 
{ 
   kumar(); 
}
你有很多

令人困惑的代码在那里发生,但如果想法是停止一个函数,只需使用">return false;">,代码执行就会停止