私はNode.JSを使用しており、コールバックを介して移動する2つのオブジェクトがあります。正しいオブジェクトへのスコープ参照を維持するための解決策を思いつきました。私はこれを行うためのより良い方法があるかどうか、またはこれが良い習慣であるかどうかを理解しようとしています。
function Worker () {}
Worker.prototype.receiveJob = function(callback, bossReference) {
this.doJob(callback, bossReference);
};
Worker.prototype.doJob = function(callback, bossReference) {
callback.call(bossReference);
// callback(); // this will not work
};
function Boss () {
this.worker = new Worker();
}
Boss.prototype.delegateJob = function() {
this.worker.receiveJob(this.whenJobCompleted, this);
};
Boss.prototype.whenJobCompleted = function() {
this.sayGoodJob();
};
Boss.prototype.sayGoodJob = function() {
console.log('Good job');
};
var boss = new Boss();
boss.delegateJob();