简体   繁体   中英

How to call a static JS function defined in other javascript file

I am using Meteor JS. I have a JavaScript function defined in file A which I want to reuse by calling from file B. Example:

File A:

function Storeclass(){}
Storeclass.validate=function(){...}

From A JavaScript I try to call StoreClass.validateBasic() it works but the same call doesn't work from B. Also I tried in B doing var storeClassObj=new StoreClass(); and storeClassObj.validate() . I get error ReferenceError: StoreClass is not defined .

Because your function in file B might invoke before File A is ready so you have to make sure that all required js files are loaded successfully.

If you are using jQuery then in file B call your function in document ready function:

$( document ).ready(function() {
    //File A code
});

or in plain JavaScript:

(function() {
   // your page initialization code here
   // file A code

})();

Read this doc about namespacing in Meteor.

The relevant portion is this:

// File Scope. This variable will be visible only inside this
// one file. Other files in this app or package won't see it.
var alicePerson = {name: "alice"};

// Package Scope. This variable is visible to every file inside
// of this package or app. The difference is that 'var' is
// omitted.
bobPerson = {name: "bob"};

However, later on in the same doc, it says this:

When declaring functions, keep in mind that function x () {} is just shorthand for var x = function x () {} in JavaScript.

This suggests that the function you have written is private to the file A and cannot be accessed from file B, even if load order is correct!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM