gpt4 book ai didi

javascript - 测试互斥的 JavaScript

转载 作者:行者123 更新时间:2023-11-30 06:46:22 25 4
gpt4 key购买 nike

我正在开发一个包含不同 JavaScript 文件的 Web 应用程序,具体取决于我在应用程序中的位置。例如,我为每个页面都有一个 display.js,每个页面都有一个“init()”函数,该函数会在页面加载后立即调用。

这适用于网络应用程序,但在我的 QUnit 测试中,所有脚本文件都包含在一个 index.html 中,同名函数会相互覆盖。

如何最好地处理这些问题?每页一个测试 index.html 文件会创建大量样板代码,并使得执行所有测试用例变得非常重要。这就是为什么我决定给每个函数都单独命名的原因,例如“initFrontPage()”而不是“init()”。然而,这使得应用程序代码有点奇怪:我不仅必须包含正确的文件,还必须在其中调用正确的函数。有没有更好的办法?

最佳答案

解决方案是使用命名空间:

在 foo/display.js 中:

window.foo = {};
foo.init = function () { ... };

在 bar/display.js 中:

window.bar = {};
bar.init = function () { ... };

然后,在使用bar/display.js的init方法的页面中:

(function (display) {
display.init();
}(bar));

最好将 display.js 代码包装在 IIFE

关于javascript - 测试互斥的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6352954/

25 4 0