问题是如果它是第一次运行,我需要中断该功能是否有任何可用的功能,或者我必须执行以下操作?
var times = 1
function abc () {
if (times == 1)
break;
else
.....
times++;
}
times = 0;
谢谢。
问题是如果它是第一次运行,我需要中断该功能是否有任何可用的功能,或者我必须执行以下操作?
var times = 1
function abc () {
if (times == 1)
break;
else
.....
times++;
}
times = 0;
谢谢。
您可以使用此模式:
function abc() {
if (!abc.flag) {
abc.flag = true;
return;
}
// .. rest of the code
}
它基于 Function 也是 Javascript 中的对象这一事实。
基本上这是一种记忆模式。它的缺点是该flag
属性可以被另一个代码覆盖。优点是您不需要使用其他变量污染全局范围。
thg435提出了更优雅的解决方案。
在我看来,您试图在错误的地方解决问题。你能告诉我们整个故事吗?
与此同时,这样的事情应该可以解决问题:
function abc() {
abc = function() {
// ...actual work...
}
}
详细信息取决于您的函数的定义方式(全局、本地、作为方法)。
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
{
.....
}
}
试试这个 :
var times = 1;
function abc () {
if (times == 1){}
else{
.....
times == 0;}
}