我创建了我正在处理的一些代码的简化版本。我需要弄清楚如何将实例化对象的引用传递给由该对象创建的另一个对象。我无法获取对要传递给第二个对象的主对象“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;