問題は、初めて実行する場合に関数を壊す必要があるか、または次のようなことをしなければならないことです。
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;}
}