Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 1x 2x 2x 1x 1x 1x 1x | /** * 包装为仅触发一次的函数 * - 被包装的函数智能执行一次,之后不会再执行 * @method fn/once * @param {Function} fn 要延迟触发的函数 * @param {Object} [bind] 函数的 this 指向 * @returns {Function} 该函数仅能触发执行一次 * @example * var $once = require('@spore-ui/kit/packages/fn/once'); * var fn = $once(function () { * console.info('output'); * }); * fn(); // 'output' * fn(); // will do nothing */ function once(fn, bind) { return function () { bind = bind || this; if (typeof fn === 'function') { fn.apply(bind, arguments); fn = null; bind = null; } }; } module.exports = once; |