你不需要任何花哨的js插件來做到這一點,只需在你的主js文件之前包含你的「頭文件」(所有的函數聲明) HTML。
例子:
file1.js:
//declare your functions here
function handyFunction() {
//do some handy stuff
}
file2.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
}
main.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中,每個變量都是在函數範圍內聲明的,除非在這種情況下它被追加到窗口對象。這被稱爲函數範圍,與其他語言有很大差異。這意味着你在文件中聲明的所有內容都將被附加到全局對象(窗口)或2)只能被其聲明的函數訪問。 所以,如果你想「匿名化」一些代碼,你可以在它周圍包裝一個自動執行的匿名函數,並且由於該函數沒有變量引用它,所以其他任何人都不能訪問該代碼。這就是爲什麼你在很多地方看到(function() { /*...*/}());
。 那麼,如何共享在這兩種文件之間以這種方式聲明的代碼?簡單,給它一個名字!並因此創建模塊模式。在第一個文件中,你將所有的代碼聲明在一個名爲「module」的變量中,或者將所有的代碼都放在你的山羊身上,並且你可以用你喜歡的最喜歡的方式放置所有的方法(例如,通過使用匿名函數並返回一個對象)。訣竅是在全局對象上聲明這個「模塊」對象,以便能夠跨應用程序中的文件使用它。真的沒有太多的東西。
不要把JS放在'head'中。 – Mathletics
如果我使用模塊模式會怎麼樣?我是否仍然可以直接調用該函數(當然,只要它是「公開的」)? – Nik
模塊是什麼意思? JavaScript中沒有這樣的東西。如果你創建了一個包含多個方法的對象,那麼這個對象在下一個腳本中就可以用你稱之爲的任何名稱訪問 –