Si può facilmente includere un file di script in un altro nelle estensioni di RKWard. Il valore di questo diventa immediatamente ovvio, se alcune sezioni del codice JS sono simili tra le estensioni. È possibile semplicemente definire quelle sezioni in un file .js separato e includerlo in tutti i file .js dell'estensione. Ad esempio, come in:
// questo è un file chiamato «common_functions.js»
function doCommonStuff () {
// forse prende qualche opzione, ecc.
// ...
comment ("Questo è il codice R che vuoi in diverse estensioni\n");
// ...
}
// questo è uno dei file .js delle tue normali estensioni
// includi le funzioni comuni
include ("common_functions.js");
function calculate () {
// fai qualcosa
// ...
// inserisci il codice comune
doCommonStuff ();
}
Notare che a volte è ancora più utile invertire questa situazione e definire lo «scheletro» delle funzioni preprocess(), calculate() e printout()in un file comune e fare in modo che queste richiamino quelle parti che sono diverse tra le estensioni. Ad es:
// questo è un file chiamato "common_functions.js"
function calculate () {
// fare qualcosa che è uguale in tutte le estensioni
// ...
// aggiungere qualcosa che è diverso tra le estensioni
getSpecifics ();
// ...
}
// questo è uno dei normali file .js dell'estensione
// includi le funzioni comuni
include ("common_functions.js");
// nota: nessuna funzione calculate() è definita qui.
// è, invece, la common_functions.js.
function getSpecifics() {
// stampa codice R
}
Un problema da tenere presente quando si utilizza questa tecnica è l'ambito delle variabili. Vedere il manuale di JS sugli ambiti delle variabili.
Questa tecnica è ampiamente utilizzata nel grafico di distribuzione e nelle estensioni con creazione di grafici TLC di distribuzione, quindi si potrebbe voler cercare degli esempi.