揭示模块模式javascript无法访问变量

时间:2014-07-31 18:45:24

标签: javascript module-pattern revealing-module-pattern

我在JavaScript中实现Revealing Module模式,并且难以在另一个脚本中访问声明的变量。以下是我的代码。

SCRIPT1:

var SomeEventHandler = (function (){

    var logSomeEvent = function(){...}
    return {
        trackEvent: logSomeEvent;
    };
})();

Script2:

SomeEventHandler.trackEvent(); // This gives me undefined error. 

在HTML中,我在脚本2之前添加了脚本1,所以我想知道如何在脚本2中访问SomeEventHandler。

1 个答案:

答案 0 :(得分:4)

我注意到你的对象表示法中有一个分号。多个键:使用对象表示法创建的对象中的值属性由逗号分隔,而不是以分号分隔。此外,如果只有一个元素,则不需要分隔符。我删除了分号,它在我的测试中工作正常。

var SomeEventHandler = (function (){
    var logSomeEvent = function() { console.log('Cool stuff happened!'); }
    return {
        trackEvent: logSomeEvent
    };
}());

// ...

SomeEventHandler.trackEvent(); // Cool stuff happened!