2

同じ 内に 2 つのモジュールがあり、namespaceそれらの間で変数を渡したいと考えています。名前空間は呼び出されapp、変数はa- ですが、何らかの理由で、メソッドが呼び出されるとa常に変数が出てきます。null

コードは次のとおりです。

// module 1
(function() {
    app.module1 = (function() {
        var a = null; 
        canvas.addEventListener('mousedown', function(e) {
            a = { message: hallo };
            app.module2.print();
        }, 0);

        return {
            a: a
        };
    })();
})();

// module 2

(function() {
    app.module2 = (function() {
        var print = function() {
            console.log(app.module1.a);
        }

        return {
            print: print
        };
    })();
})();
4

2 に答える 2

1

これは、ハンドラーがモジュールのプロパティではaなくローカルを参照しているためです。a代わりにオブジェクトを変更することをお勧めします。または、次のようにすることもできます。

// module 1
(function () {
  app.module1 = (function () {
    var interface = {
      a: null
    };
    canvas.addEventListener('mousedown', function (e) {
      //this way, you are modifying the object
      interface.a = {
        message: hallo
      };
      app.module2.print();
    }, 0);
    return interface;
  })();
})();
于 2013-05-03T23:02:36.433 に答える