【问题标题】:Run functions in different files在不同的文件中运行函数
【发布时间】:2012-04-25 15:20:27
【问题描述】:

我有几个 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


【解决方案1】:

JavaScript 不是 C 或类似的东西。

在哪个文件中定义函数并不重要。该函数将被覆盖。

因此,如果您首先加载文件a.js,然后加载文件b.js,则main 函数将是您在b.js 中定义的main 函数和您已经定义的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();

【讨论】:

    【解决方案2】:

    如果您需要控制依赖关系(加载顺序),请使用 head.jsrequire.js 之类的内容。

    但是,不要通过在所有 JS 文件中重用全局函数名称 main 来污染全局命名空间。网上有很多关于如何避免污染全局命名空间以及为什么这是一个好主意的文档。这是一个简单的网络搜索。

    更多信息请参见此处的答案:How do I declare a namespace in JavaScript?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      相关资源
      最近更新 更多