如何调用在其他javascript文件中定义的静态JS函数

如何调用在其他javascript文件中定义的静态JS函数,javascript,meteor,Javascript,Meteor,我用的是流星JS。 我在文件a中定义了一个JavaScript函数,我希望通过从文件B调用该函数来重用该函数。示例: 文件A: function Storeclass(){} Storeclass.validate=function(){...} 从JavaScript中我尝试调用StoreClass.validateBasic()它可以工作,但从B中同样的调用不起作用。我也尝试在B中执行var storeClassObj=newstoreclass()和storeClassObj.valid

我用的是流星JS。 我在文件a中定义了一个JavaScript函数,我希望通过从文件B调用该函数来重用该函数。示例:

文件A:

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

从JavaScript中我尝试调用
StoreClass.validateBasic()
它可以工作,但从B中同样的调用不起作用。我也尝试在B中执行
var storeClassObj=newstoreclass()
storeClassObj.validate()
。我得到错误
ReferenceError:StoreClass未定义

,因为文件B中的函数可能会在文件A准备好之前调用,所以您必须确保所有必需的js文件都已成功加载

如果您使用的是jQuery,则在文件B中调用document ready函数中的函数:

$( document ).ready(function() {
    //File A code
});
或者在纯JavaScript中:

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

})();

因为文件B中的函数可能在文件A准备好之前调用,所以您必须确保成功加载所有必需的js文件

如果您使用的是jQuery,则在文件B中调用document ready函数中的函数:

$( document ).ready(function() {
    //File A code
});
或者在纯JavaScript中:

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

})();
阅读这篇关于Meteor中名称空间的文章

相关部分如下:

// 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"};
然而,后来在同一份文件中,它说:

声明函数时,请记住函数x(){}只是JavaScript中var x=function x(){}的简写

这表明您编写的函数是文件A的私有函数,即使加载顺序正确,也无法从文件B访问该函数

阅读这篇关于Meteor中名称空间的文章

相关部分如下:

// 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"};
然而,后来在同一份文件中,它说:

声明函数时,请记住函数x(){}只是JavaScript中var x=function x(){}的简写


这表明您编写的函数是文件A的私有函数,即使加载顺序正确,也无法从文件B访问该函数

Storeclass=function(){}?
,meteor将使其成为一个全局变量,在所有JS之间都可以访问,而且如果您放置var,您将使其成为一个局部scoope变量,这就是它不存在于其他JS上的原因。JS如何使该类成为全局变量?让它在我的JS文件中可见?您所引用的变量位于文件be中,我调用的函数不在定义此函数的文件A中。
Storeclass=function(){}?
,meteor将使其成为一个全局变量,可在所有JS之间访问,另外,如果你把var放在一个局部scoope变量中,这就是为什么它不存在于其他变量中?让它在我的JS文件中可见?您所引用的var在文件be中,我调用的函数不在定义此函数的文件A中。我删除了函数前面的var,它工作了,谢谢ex:validateBasic=function(){},并完全删除了Storeclass。我删除了函数前面的var,它工作了,谢谢ex:validateBasic=function(){}并完全删除了Storeclass。