问题是我需要在第一次运行时打破这个函数 有没有可用的函数,或者我需要做如下的事情?第一次在javascript/jquery中运行函数时没有做任何事情
var times = 1
function abc() {
if (times == 1)
break;
else
.....
times++;
}
times = 0;
谢谢。
问题是我需要在第一次运行时打破这个函数 有没有可用的函数,或者我需要做如下的事情?第一次在javascript/jquery中运行函数时没有做任何事情
var times = 1
function abc() {
if (times == 1)
break;
else
.....
times++;
}
times = 0;
谢谢。
在我看来,你试图在错误的地方解决问题。你能告诉我们整个故事吗?
同时,这样的事情应该做的伎俩:
function abc() {
abc = function() {
// ...actual work...
}
}
细节取决于你的函数是如何定义的(全局,局部,作为一种方法)。
这是这种情况下最好的模式。 – dfsq 2013-03-13 10:58:41
这没有任何意义。介意解释它是如何工作的?谢谢! – 2015-03-22 08:41:17
var isFirstTime = true;
function abc() {
if (isFirstTime)
{
isFirstTime = false;
return;
}
.....
}
abc(); //returns
abc(); //runs
var firstTime= true
function abc() {
if (firstTime)
{
firstTime = false;
return;
}
else
{
.....
}
}
您可以使用此模式:
function abc() {
if (!abc.flag) {
abc.flag = true;
return;
}
// .. rest of the code
}
它是基于一个事实,即功能也是在Javascript对象。
基本上这是一个Memoization模式。它的缺点是flag
属性可能被另一个代码覆盖。好处是你不需要用其他变量来污染全球范围。
thg435提出了更加优雅的解决方案。
试试这个:
var times = 1;
function abc() {
if (times == 1){}
else{
.....
times == 0;}
}
'break'将取消'for','while','做-while'和'之开关语句,但不是*功能*。改用'return'。 – jAndy 2013-03-13 10:51:07