我正在用JavaScript实现显示模块模式,并且在访问另一个脚本中的声明变量时遇到困难。下面是我的代码。

脚本1:

var SomeEventHandler = (function (){

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


脚本2:

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


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

最佳答案

我注意到您在对象表示法中使用了分号。用对象符号创建的对象中的多个key:value属性用逗号而不是分号分隔。另外,如果只有一个元素,则不需要分隔符。我删除了分号,并且在我的测试中效果很好。

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

// ...

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

09-30 10:10