我有几个 JS 文件;第一个是供下一个使用的库,并且每个其他文件都有一个函数main()调用该文件的函数。
lib.js => 库
a.js :: main() => 在 a.js 中调用函数
b.js :: main() => 在 b.js 中调用函数
...
...
因此,我希望为这些文件运行main函数(在加载lib.js之后)。
加载JS文件后如何运行每个函数main ?
它将加载a.js并运行main,加载b.js并运行main,...
我有几个 JS 文件;第一个是供下一个使用的库,并且每个其他文件都有一个函数main()调用该文件的函数。
lib.js => 库
a.js :: main() => 在 a.js 中调用函数
b.js :: main() => 在 b.js 中调用函数
...
...
因此,我希望为这些文件运行main函数(在加载lib.js之后)。
加载JS文件后如何运行每个函数main ?
它将加载a.js并运行main,加载b.js并运行main,...
JavaScript 不是 C或类似的东西。
在哪个文件中定义函数并不重要。该函数将被覆盖。
因此,如果您先加载文件a.js
,然后加载文件,则b.js
该main
函数将是main
您在其中定义b.js
的main
函数和您在其中定义的函数a.js
将不存在于任何地方。
如果您想保留旧功能,我建议您在每个文件中创建一个对象并在其中定义主要功能。所以像这样。
a.js
:
var a = {};
a.main = function() {
/* do stuff */
};
b.js
:
var b = {};
b.main = function() {
/* do stuff */
};
所以现在你可以打电话:
a.main();
和
b.main();
如果您需要控制依赖关系(加载顺序),请使用类似head.js
or的东西require.js
。
但是,不要通过main
在所有 JS 文件中重用全局函数名来污染全局命名空间。网上有很多关于如何避免污染全局命名空间以及为什么这是一个好主意的文档。这是一个简单的网络搜索。
此处答案中的更多信息:如何在 JavaScript 中声明命名空间?