JavaScript: un esempio di overloading dei metodi

JavaScript: un esempio di overloading dei metodi

L'overloading dei metodi di un oggetto è una pratica molto comune in molti linguaggi di programmazione. JavaScript in tal senso non fa eccezione ma presenta delle caratteristiche assolutamente peculiari.

La soluzione più usata al momento è stata implementata da John Resig in modo molto semplice.

function addMethod( object, name, fn ) {
  // Salva un riferimento al vecchio metodo
  var old = object[ name ];
  // Sovrascrive il metodo
  object[ name ] = function() {
  // Verifica il numero di argomenti
  if( fn.length == arguments.length ) {
  return fn.apply( this, arguments );
  } else if( typeof === "function" ) {
  return old.apply( this, arguments );
  }
  };
}

In pratica questa funzione di utility determina se usare o meno il nuovo metodo in base al numero di argomenti passati. Un numero diverso di argomenti rispetto al metodo originale indica che il metodo è stato modificato.

Torna su