您不需要任何花哨的 js 插件来执行此操作,只需在 html 中的主 js 文件之前包含您的“头文件”(所有函数声明)。
例子:
文件 1.js:
//declare your functions here
function handyFunction() {
//do some handy stuff
}
文件2.js:
//use them here
handyFunction();
html:
<body>
<!-- all your html here -->
<script src="file1.js" type="text/javascript"></script>
<script src="file2.js" type="text/javascript"></script>
</body>
如果您对全局对象上的所有内容感到不自在,您可以拥有包含您需要的方法的对象,并根据需要创建它们的实例或访问先前创建的实例。只是一个简单的例子:
MyObject.js:
function MyObject() {
this.property = "someValue";
}
MyObject.prototype.someMethod = function () {
//do something
}
主.js:
var obj= new MyObject();
obj.someMethod();
html:
<!-- always remember to include your files in the correct order -->
<script src="MyObject.js" type="text/javascript"></script>
<script src="main.js" type="text/javascript"></script>
好的,最后一个澄清。在 JavaScript 中,每个变量都在函数范围内声明,除非没有变量,在这种情况下它会附加到窗口对象。这称为函数作用域,与其他语言有很大不同。这意味着您在文件中声明的所有内容都将 1)附加到全局对象(窗口)或 2)只能由声明它的函数访问。因此,如果您想“匿名化”某些代码,您可以围绕它包装一个自动执行的匿名函数,并且由于该函数没有引用它的变量,因此该代码之外的任何人都无法访问该代码。这就是为什么你看到(function() { /*...*/}());
在很多地方。那么,如何在文件之间共享以这种方式声明的代码呢?很简单,给它一个名字!这样就创建了模块模式。在第一个文件中,您将所有代码声明在一个名为“module”的变量或任何浮动您的山羊的变量中,并在其中以您喜欢的最奇特的方式放置所有方法(例如,通过使用匿名函数并返回一个对象)。诀窍是在全局对象上声明这个“模块”对象,以便能够跨应用程序中的文件使用它。真的没有更多的东西了。