JSFiddle - React, Tailwind, and code Playground
JavaScript
ObjectTest1 = (function() {
var init = function() {
this.callback = null;
}
init.prototype = {
setCallback: function(callback) {
this.callback = callback; // O CALLBACK DEFINIDO AQUI É init.prototype.methodTest2 PERTENCENTE AO ObjectTest2
},
applyCallback: function() {
if (typeof this.callback == 'function') {
this.callback(); // CHAMADA NORMAL DE init.prototype.methodTest2 DO OBJETO ObjectTest2
}
}
}
return init;
}());
ObjectTest2 = (function() {
var self;
var init = function() {
self = this;
}
init.prototype = {
methodTest1: function() {
console.log('methodTest1');
},
methodTest2: function() {
console.log('methodTest2');
if (typeof self.methodTest1 != 'undefined') { // ESTE METODO NÃO EXISTE NO ObjectTest1 POIS ELE É DO ObjectTest2
self.methodTest1();
} else {
console.log('ERROR');
}
}
}
var newInit = new init;
return newInit;
}());
var o = new ObjectTest1();
o.setCallback(ObjectTest2.methodTest2);
o.applyCallback();