В нашем ежедневном развитии мы часто сталкиваемся с ситуацией, когда хотим выполнять функцию выполнять только один раз, особенно когда некоторые циклы или выполнение времени.
Без лишних слов просто загрузите код:
Функция runonce (fn, context) {// контролировать функцию, чтобы запустить return function () {try {fn.apply (контекст || это, аргументы); } catch (e) {console.error (e); // Обычно вы можете прокомментировать эту строку}, наконец, {fn = null; }}} // Использование 1: var a = 0; var canonlyfireonce = runonce (function () {a ++; console.log (a);}); canonlyfireonce (); // 1canonlyfireonce (); // ничто не канонизируемое fireonce (); // ничего // Использование 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 (function () {console.log ("hello" + this.name);}, obj); canonlyfireonce (); // Привет, Тианья, Canonlyfireonce (); // ничегоПоскольку после того, как функция возврата выполняется один раз, fn = null устанавливает ее не нулевой, поэтому она не будет выполнена позже. Разместите еще один код, разделяемый другими онлайн, принцип такой же:
Функция Once (fn, context) {var result; return function () {if (fn) {result = fn.Apply (контекст || это, аргументы); fn = null; } return Result; };} // usagevar canonlyfireonce = one (function () {console.log ('увольнение!');}); canonlyfireonce (); // "Уволенный!" canonlyfireonce (); // ничегоВыше приведено набор примеров функции, чтобы вы могли позволить JavaScript выполнять только один раз. Если вам это нужно, вы можете обратиться к этому.