服务器上忽略了显示模块模式的javascript

javascript revealing module pattern ignored on server

本文关键字:模块 模式 javascript 显示 服务器      更新时间:2023-09-26

我一直在寻找为什么我的javascript代码完全在我的网络主机上的答案。我有一些现有的javascript函数,在我尝试使用javascript中的揭示模块模式修改它们之前,它们一直工作得很好,因为从我收集的信息来看,这是减少对全局命名空间污染的好做法。在这个范围之外没有函数调用,所以我没有使用返回指向函数。在VisualStudio中进行测试时,它在不同的浏览器中都能正常工作。

godaddy服务器中是否有我需要配置的东西?我试着打电话给他们寻求支持,但没有得到帮助。下面是我的代码示例。事实上,我在这个范围内有更多的功能,但在这个问题上保持了简短。提前谢谢。

myModule = (function () {
    //add upDate
    function timeOfUpdate {
    var timeOfUpdate = new Date(document.lastModified);
        $("#lastUpdate").append(timeOfUpdate);
    }
    //add some more functions
    function modTwo {
    //add code to execute..
    }
})();

我不确定你想对模块定义做什么,但你没有从模块返回任何东西,所以模块内的函数在模块内是本地的,不能从模块外使用。如果你看看这个关于揭示模块模式的引用,你会清楚地看到他们正在返回一个带有方法的对象,这就是分配给模块变量的内容。

也许你想做的是:

var myModule = (function () {
    return {
        //add upDate
        timeOfUpdate: function {
            var timeOfUpdate = new Date(document.lastModified);
            $("#lastUpdate").append(timeOfUpdate);
        },
        //add some more functions
        modTwo: function {
            //add code to execute..
        }
    }
})();

这将从IIFE返回一个对象,以便myModule成为一个将方法timeOfUpdate()modTwo()作为对象属性的对象。

然后,您可以访问以下功能:

myModule.timeOfUpdate();
myModule.modTow();

如果您没有尝试在模块外使用这些函数中的任何一个,那么您必须帮助我们提供更多关于您尝试做什么以及看到哪些错误的详细信息。你可以在IIFE中封装一堆代码,就像你做得很好一样,这不会造成任何问题。如果你没有从IIFE返回任何东西,那么分配给myModule = ...中的模块名称就没有意义,所以在我看来,你至少朝着错误的方向前进了,但如果不了解你试图对这个模块做什么,或者你遇到了什么错误,我们真的无法提供进一步的帮助。


此外,您的示例显示了一些本地函数定义,但没有显示调用任何函数,因此在插入一些实际调用函数的代码之前,不会发生任何事情。