如何调用在其他javascript文件中定义的静态JS函数
我用的是流星JS。 我在文件a中定义了一个JavaScript函数,我希望通过从文件B调用该函数来重用该函数。示例: 文件A:如何调用在其他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
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。