我创建了一些我正在处理的代码的简化版本。我需要弄清楚如何将实例化对象的引用传递给该对象创建的另一个对象。我无法将主要对象“self”的引用传递给第二个对象,实际上可以调用它上面的函数。希望代码能够更清晰:
var app = app || {};
(function (m, $, undefined) {
m.Counter = function () {
var self = this;
var pub = {};
pub.total = 0;
pub.add = function () {
pub.total++;
};
pub.subtract = function () {
pub.total--;
};
pub.status = function () {
console.log(pub.total);
};
pub.spawn = function () {
var sp = new app.modules.Obj(self);
return sp;
};
return pub;
};
m.Obj = function (counter) {
var pub = {};
pub.add = function () {
counter.add();
};
return pub;
};
}(app.modules = app.modules || {}));
var c = new app.modules.Counter();
c.add();
c.add();
c.add();
c.status();
d = c.spawn();
d.add();
c.status();
我想要发生的是d.add()会增加c的总和。所以第一个c.status()调用的输出为3,然后第二个c.status()的输出为4;