2011-04-26 55 views
10

从一个js到另一个js调用函数的规则是什么?我认为这工作,但我没有遇到问题(通过火狐算出来),在另一个js文件中的函数似乎不能在我的第一个js文件中识别。在另一个.js文件中调用javascript方法

是否有一些有关排序的规则或一些你必须做的操作才能使它起作用?

回答

7

你是在事件处理程序中调用函数还是在加载JavaScript文件时立即调用该函数?如果它不在事件处理程序中,则加载顺序非常重要。如果您有循环依赖关系,则可能需要使用“DOM ready”或window.onLoad侦听器来延迟一些初始化。

+0

所以如果它来自一个事件处理程序,我不需要担心?? – leora 2011-04-26 12:22:03

3

浏览器按照它们出现在HTML中的顺序解析javascript文件。因此,如果第一个文件中的函数依赖于第二个文件中的函数,那么它将不起作用。如果你使用$(function(){});例如使用jQuery,这是指示JavaScript等待窗口对象触发onload事件。这可确保页面上的所有元素在执行前已被加载。

31

它必须在全球范围内的某个地方可以访问。例如:

// file1.js 
function hello() { 
    alert("Hello, world!"); 
} 
// file2.js 
$(function() { 
    hello(); 
}); 

可能的是,你有这样的事情:

// file1.js 
$(function() { 
    function hello() { 
     alert("Hello, world!"); 
    } 
    // ... 
}); 
// file2.js 
$(function() { 
    hello(); 
}); 

hello只有在file1.js所述的封闭的范围。因此,要访问它file2.js,你必须将其导出到的地方在那里file2.js可以得到它:

// file1.js 
$(function() { 
    function hello() { 
     alert("Hello, world!"); 
    } 
    window.hello=hello; 
}); 
// file2.js 
$(function() { 
    hello(); 
}); 

而且,当函数定义必须加载,解析和执行前的脚本函数可以从另一个脚本调用。

+0

你最后2行对我很有价值。谢谢 – 2015-10-06 14:44:37

相关问题