JavaScript: come invocare una funzione una sola volta

JavaScript: come invocare una funzione una sola volta

JavaScript non dispone di un metodo per invocare una funzione una sola volta. Fortunatamente esiste una soluzione.

Si tratta semplicemente di impostare un flag di stato e vincolare l'esecuzione del codice a tale flag:


(function() {
	function callOnce( flag, func ) {
		if( !flag.fired ) {
			func();
		}
	}

	document.addEventListener( 'DOMContentLoaded', function() {
		const pointerObj = {
			fired: false
		};
		let times = 0;

		callOnce( pointerObj, function() {
			times++;
			document.getElementById( 'output' ).innerHTML = times;
		});

		pointerObj.fired = true;

		callOnce( pointerObj, function() {
			times++;
			document.getElementById( 'output' ).innerHTML = times;
		});
	});

})();

Torna su