私たちの毎日の開発では、特にループやタイミングの実行された場合に、関数を1回だけ実行したい状況に遭遇することがよくあります。
これ以上苦労せずに、コードをアップロードするだけです。
function rononce(fn、context){//関数を制御してreturn function(){try {fn.apply(context || this、arguments); } catch(e){console.error(e); //一般に、この行をコメントすることができます}最後に{fn = null; }}} //使用法1:var a = 0; var canonlyfireonce = runonce(function(){a ++; console.log(a);}); canonlyfireonce(); // 1CanonlyFireOnce(); // canonlyfireonce(); //なし//使用法2:var name = "zhang san"; var canonlyfireonce = runonce(function(){console.log( "hello" + this.name);}); canonlyfireonce(); // hello zhang san canonlyfireonce(); //なし//使用3:var obj = {name:「世界からの孤独なガチョウ」、年齢:24}; var canonlyfireonce = runonce(){console.log( "hello" + this.name);}、obj); canonlyfireonce(); //こんにちは、Tianya、CanonlyFireonce(); // 何もない戻り機能が1回実行された後、fn = nullはnullではないため、後で実行されないためです。他の人がオンラインで共有する別のコードを投稿すると、原則は同じです。
function and(fn、context){var result; return function(){if(fn){result = fn.apply(context || this、arguments); fn = null; } return result; };} // usagevar canonlyfireonce = and(function(){console.log( 'fired!');}); canonlyfireonce(); //「解雇!」 canonlyfireonce(); // 何もない上記は、JavaScriptを1回だけ実行できるようにするための関数の例のコレクションです。必要な場合は、参照できます。