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

标签 javascript visual-studio revealing-module-pattern

我一直在寻找为什么我的 javascript 代码完全在我的网络主机上的答案。我有现有的 javascript 函数,它们曾经工作得很好,直到我尝试使用 javascript 中的揭示模块模式来修改它们,因为从我收集的数据来看,这是减少污染全局命名空间的好习惯。在此范围之外没有函数调用,因此我没有使用 return 来指向函数。在 Visual Studio 中进行测试时,它在不同的浏览器中运行良好。

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..
    }
})();

最佳答案

我不确定您到底想用该模块定义做什么,但是您没有从模块返回任何内容,因此模块内的函数在模块内是本地的,不能从外部使用该模块。如果你看this reference on the revealing module pattern ,您将清楚地看到它们返回一个带有方法的对象,这就是分配给模块变量的对象。

也许您的本意是这样的:

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 = ... ,所以在我看来,您至少走错了方向在那里,但如果不了解您尝试使用此模块做什么或遇到什么错误,我们无法真正提供进一步的帮助。

<小时/>

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

关于javascript 显示服务器上忽略的模块模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28424516/

相关文章:

javascript - 创建揭示模块模式的实例

javascript - 使用ajax加载Javascript时出错

javascript - 如何确定 node.js 中的复制过程何时完成?

JavaScript 无法在 php 标签下运行

c++ - 如何为 Visual Studio 创建动态定义?

visual-studio - 用 Fortran 编写 DLL/从 Excel 调用

c++ - 如何将 _RICHEDIT_VER (riched20.dll) 升级到版本 3 或更高版本

javascript - 回调函数返回未定义

javascript - 是否可以将 Revealing Module Pattern 实例传递给回调函数?

javascript - $interval范围引用 Angular 工厂内的方法