раскрытие шаблона модуля java-скрипт не может получить доступ к переменной

Я реализую шаблон Revealing Module в JavaScript и испытываю трудности с доступом к объявленной переменной в другом скрипте. Ниже мой код.

Скрипт1:

var SomeEventHandler = (function (){

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

Script2:

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

В HTML я добавил сценарий 1 перед сценарием 2, поэтому я хотел знать, как получить доступ к SomeEventHandler в сценарии 2.


person Mandar    schedule 31.07.2014    source источник
comment
Пожалуйста, включите свой html. Я предполагаю, что у вас нет сценариев, объявленных в правильном порядке.   -  person Andrew Eisenberg    schedule 31.07.2014
comment
Я работаю в Visualforce, поэтому не уверен, имеет ли смысл включать эту страницу. Но я убедился, что порядок сценариев правильный.   -  person Mandar    schedule 31.07.2014


Ответы (1)


Я заметил, что в обозначении объекта есть точка с запятой. Множественные свойства ключ: значение в объектах, созданных с помощью объектной нотации, разделяются запятыми, а не точкой с запятой. Также вам не нужен разделитель, если есть только один элемент. Я удалил точку с запятой, и в моем тестировании она отлично работает.

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

// ...

SomeEventHandler.trackEvent(); // Cool stuff happened!
person cvializ    schedule 31.07.2014
comment
Большое спасибо! это устранило проблему :) - person Mandar; 31.07.2014