将函数从一个js调用到另一个js的规则是什么?我认为这有效但我没有遇到问题(通过firefox计算出来),我的第一个js文件中似乎没有识别出另一个js文件中的函数。
是否有一些关于订购的规则或者你需要做些什么才能让它发挥作用?
答案 0 :(得分: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();
});
此外,必须先加载,解析和执行定义函数的脚本,然后才能从另一个脚本调用该函数。
答案 1 :(得分:7)
您是在事件处理程序中调用该函数,还是在加载javascript文件时立即调用该函数?如果它不在事件处理程序中,那么加载顺序很重要。如果您有循环依赖关系,则可能需要使用“DOM ready”或window.onLoad
侦听器来延迟某些初始化。
答案 2 :(得分:3)
浏览器按照它们在HTML中出现的顺序解析javascript文件。因此,如果第一个文件中的某个函数依赖于第二个文件中的函数,它将无法工作。如果你使用$(function(){});例如,使用jQuery,这是指示javascript等待从窗口对象触发onload事件。这可确保在执行之前加载页面上的所有元素。