我在同一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
};
})();
})();
答案 0 :(得分: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;
})();
})();
答案 1 :(得分:1)