Question

First, a caveat. The main script is not run in a webpage. I will be running the .js file in Windows using Windows Script Host.

The problem: I would like to create a javascript "library" containing a number of objects, each with a number of functions. I expect this library will get rather large with time and would like to keep it in a separate javascript file (let's call it Library.js). I would like to access the objects from Library.js from another script (let's call this one User.js).

In essence, I am looking for something similar to the C/C++ "include" paradigm.

Is there anyway to implement this in javascript? (Remember, this is not web-based)

Was it helpful?

Solution

This page right here is the closest I could find. It talks about .wsf files which let you combine multiple scripts (that may be written in different languages) in one file.

For your question it should be something like:

user.wsf

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

There may be better ways, but I'm not a WSH expert.

OTHER TIPS

I know this is an old question and it has been answered and accepted.

I know about .WSF files and how they work; they serve the purpose.

However, I've also found it handy to do the "inclusion" from within a pure .js file that runs in WSH. Here's my solution for that.

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

With that utility function defined, I can do this from within a javascript module:

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

...and then I can invoke any of the functions or tickle any of the variables defined in those modules.

A similar technique works with .vbs files:
How do I include a common file in VBScript (similar to C #include)?

You can achieve your goal by using the Windows Scripting Host instead of a specific .js or .vbs file. More information can be found at the MSDN site.

From the link:

Windows script (*.wsf) file is a text document containing Extensible Markup Language (XML) code. It incorporates several features that offer you increased scripting flexibility. Because Windows script files are not engine-specific, they can contain script from any Windows Script compatible scripting engine. They act as a container.

You would cal lthe file using the same syntax as a .js and .vbs file:

wscript.exe myScriptFile.wsf

UPDATED: Correction noted...

Maybe this phpjs implementation could help.

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top