Domanda

In primo luogo, un avvertimento. Lo script principale è non eseguito in una pagina web . Sarò eseguendo il file .js in Windows utilizzando Windows Script Host.

Il problema: Vorrei creare un javascript "libreria" che contiene una serie di oggetti, ognuno con una serie di funzioni. Mi aspetto che questa biblioteca otterrà piuttosto grande con il tempo e vorrei tenerlo in un file JavaScript separato (chiamiamolo Library.js ). Vorrei accedere agli oggetti da Library.js da un altro script (chiamiamolo questo user.js ).

In sostanza, sto cercando qualcosa di simile al C / C ++ "include" paradigma.

Esiste un modo per implementare questo in javascript? (Ricordate, questo non è web-based)

È stato utile?

Soluzione

Questa pagina qui è la più vicina sono riuscito a trovare. Si parla di file wsf che consentono di combinare più script (che può essere scritto in diverse lingue) in un unico file.

Per la tua domanda dovrebbe essere qualcosa di simile:

user.wsf

<job id="IncludeExample">
   <script language="JScript" src="library.js"/>
   <script language="JScript">
      <![CDATA[
      // use your library functions here
      ]]>
   </script>
</job>

Ci possono essere modi migliori, ma io non sono un esperto di WSH.

Altri suggerimenti

So che questa è una vecchia questione ed è stato risposto e accettato.

Lo so sui file wsf e come funzionano; essi servono allo scopo.

Tuttavia, ho anche trovato a portata di mano per fare il "inclusione" da all'interno di un file .js pura che viene eseguito in WSH. Ecco la mia soluzione per questo.

    function includeFile (filename) {
        var fso = new ActiveXObject ("Scripting.FileSystemObject");
        var fileStream = fso.openTextFile (filename);
        var fileData = fileStream.readAll();
        fileStream.Close();
        eval(fileData);
    }

Con questa funzione di utilità definita, posso fare questo all'interno di un modulo di javascript:

includeFile("externalFile1.js");
includeFile("externalFile2.js");
includeFile("etc.js");

... e poi posso invocare una delle funzioni o solleticare qualsiasi delle variabili definite da tali moduli.

Una tecnica simile funziona con i file .vbs:
Come fare includo un file comune in VBScript (simile a C # include)?

È possibile raggiungere il tuo obiettivo utilizzando il Windows Scripting Host al posto di uno specifico file js o vbs. Maggiori informazioni sono disponibili all'indirizzo il sito MSDN .

Dal link:

  

script di Windows (* .wsf) file è un testo   documento contenente Extensible Markup   Lingua codice (XML). incorpora   diverse funzioni che offrono   maggiore flessibilità di scripting.   Poiché i file di script di Windows non sono   specifiche per il motore, che possono contenere   script da qualsiasi script di Windows   motore di scripting compatibili. agiscono   come un contenitore.

Si sarebbe cal file di lthe utilizzando la stessa sintassi come un file js e vbs:

  

wscript.exe myScriptFile.wsf

AGGIORNAMENTO: Correzione notato ...

Forse questo phpjs implementazione potrebbe aiutare.

http://phpjs.org/functions/include:433

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top