Funkce JavaScript Once

Občas máte funkci, kterou chcete spustit pouze jednou. Tyto funkce jsou často ve formě posluchačů událostí, které může být obtížné spravovat. Samozřejmě, pokud by se daly snadno spravovat, prostě byste odstranili posluchače, ale to je dokonalý svět a někdy prostě chcete mít možnost povolit funkci pouze jednou. Zde je funkce JavaScript, která to umožní!

JavaScript

Představte si tuto jednou funkci jako obálku funkce, kterou poskytujete:

function once(fn, context) { 
	var result;

	return function() { 
		if(fn) {
			result = fn.apply(context || this, arguments);
			fn = null;
		}

		return result;
	};
}

// Usage
var canOnlyFireOnce = once(function() {
	console.log('Fired!');
});

canOnlyFireOnce(); // "Fired!"
canOnlyFireOnce(); // nada

Funkce zalamování se spustí pouze jednou, protože proměnná měřiče se používá k zajištění, že se funkce spustí pouze jednou. Mnoho sad nástrojů JavaScript to nabízí jako funkci, ale kód k provedení tohoto výkonu je tak malý, že je dobré mít k dispozici pro případ, že se můžete vyhnout sadě nástrojů JavaScript!