문제

JavaScript에서 공개 모듈 패턴을 구현하고 다른 스크립트에서 선언 된 변수에 액세스하는 데 어려움이 있습니다.아래는 내 코드입니다.

script1 :

var SomeEventHandler = (function (){

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

script2 :

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

HTML에서는 스크립트 2 이전에 스크립트 1을 추가 했으므로 스크립트 2에서 someeventhandler에 어떻게 액세스 할 수 있는지 알고 싶었습니다.

도움이 되었습니까?

해결책

나는 당신이 당신의 객체 표기법에 세미콜론을 가지고 있다는 것을 알아 차렸다.다중 키 : 객체 표기법으로 작성된 객체의 값 속성은 세미콜론이 아닌 쉼표로 구분됩니다.또한 하나의 요소 만 있으면 세퍼레이터가 필요하지 않습니다.나는 세미콜론을 제거하고 테스트에서 잘 작동합니다.

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

// ...

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top