如何在同一个javascript命名空间中调用另一个函数?

Gab*_*iel 11 javascript

我喜欢在命名空间样式中组织我的javascript,如下所示.我想知道:有另一种(更短?)的方式来调用myFirstFunction()mySecondFunction()?我尝试了this.myFirstFunction()它并没有工作所以也许这里有一些我不知道的神秘伎俩.

var myNameSpace = {
    myFirstFunction: function(){
        alert("Hello World!");
    },
    mySecondFunction: function(){
        myNameSpace.myFirstFunction();
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助像往常一样,SO的人!:)

Bry*_*yan 12

如您的示例代码所示,this.myFirstFunction()可行.您的代码可能已经过简化以说明您的问题,因此可能有助于查看实际代码以说明它无法使用的原因this.

失败的一个可能原因是,如果您调用的代码this.myFirstFunction()位于闭包内.如果是这样,this将是对结束函数的引用,而不是您的命名空间,因此会失败.请参阅此处,了解基于您的代码的设计示例,了解我的意思.再次,查看实际代码可能有助于诊断正在发生的事情.