0

JavaScript で Revealing Module パターンを実装していますが、別のスクリプトで宣言された変数にアクセスするのが困難です。以下は私のコードです。

スクリプト 1:

var SomeEventHandler = (function (){

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

スクリプト 2:

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

HTML では、スクリプト 2 の前にスクリプト 1 を追加したので、スクリプト 2 で SomeEventHandler にアクセスする方法を知りたいと思いました。

4

1 に答える 1

4

オブジェクト表記にセミコロンがあることに気付きました。object-notation で作成されたオブジェクトの複数の key:value プロパティは、セミコロンではなくコンマで区切られます。また、要素が 1 つしかない場合は区切り記号は必要ありません。セミコロンを削除したところ、テストでは問題なく動作しました。

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

// ...

SomeEventHandler.trackEvent(); // Cool stuff happened!
于 2014-07-31T18:51:03.957 に答える