问题是我需要在第一次运行时破坏该功能 有没有可用的功能,或者我必须做以下的事情?
var times = 1
function abc () {
if (times == 1)
break;
else
.....
times++;
}
times = 0;
感谢。
答案 0 :(得分:3)
您可以使用此模式:
function abc() {
if (!abc.flag) {
abc.flag = true;
return;
}
// .. rest of the code
}
它基于以下事实:Function也是Javascript中的一个对象。
基本上这是一个Memoization模式。它的缺点是flag
属性可以被另一个代码覆盖。优点是您不需要使用其他变量污染全局范围。
thg435 提出了更优雅的解决方案。
答案 1 :(得分:2)
在我看来,你正试图在错误的地方解决问题。你能告诉我们整个故事吗?
与此同时,这样的事情可以解决问题:
function abc() {
abc = function() {
// ...actual work...
}
}
详细信息取决于您的函数的定义方式(全局,本地,作为方法)。
答案 2 :(得分:0)
var isFirstTime = true;
function abc () {
if (isFirstTime)
{
isFirstTime = false;
return;
}
.....
}
abc(); //returns
abc(); //runs
答案 3 :(得分:0)
var firstTime= true
function abc () {
if (firstTime)
{
firstTime = false;
return;
}
else
{
.....
}
}
答案 4 :(得分:0)
试试这个:
var times = 1;
function abc () {
if (times == 1){}
else{
.....
times == 0;}
}