共享2个文件中的代码之间的js函数
问题描述:
我的jquery代码被分割的文件被分割成2个文件。共享2个文件中的代码之间的js函数
在该文件中的一个,我定义一个函数
function something(input){
//does something
}
调用这个函数,只有当主叫用户线是在同一个文件工作。但我需要从两个文件中调用它。
如果我将函数切换到第二个文件,我再次遇到同样的问题。同一个文件中的代码可以读取它,但不能读取其他文件中的代码。
答
广场$(document).ready(function() { });
以外的功能给他们的全球范围。放在其中的任何东西都不能从外部访问。
然后,您可以使用名称空间来封装您的函数。这有助于避免全局名称空间的混乱。
答
您需要创建一个命名空间对象,它在您的文件之间共享。
fileA.js
window.mynamespace = window.mynamespace || {};
mynamespace.something = function(input) {
// do something
};
fileB.js
window.mynamespace = window.mynamespace || {};
mynamespace.something();
我正在使用JQuery,我的每个文件都是这样开始的。我在哪里放命名空间?文件准备好了吗? '$(document).ready(function(){ \t });' – sami 2011-03-11 10:29:07
@sami:设置或接收该对象应该是每个文件中发生的第一件事。另外,这是一个简化版本。您可以为此问题创建更复杂的解决方案。 – jAndy 2011-03-11 10:33:49
我同意这是最好的解决方案。在JavaScript中有一些带有导出/导入的实验([see this page](http://hatayservices.com/books/Javascript/JavaScriptStatements.html#stmtexport)),但是在全局对象(如窗口)上保存了themethods/object,是最好的方式... – Tokimon 2011-03-11 12:09:20