JSFiddle - React, Tailwind, and code Playground
by Artem
JavaScript
var chatMediator = {
users: [],
addUser: function(user) {
this.users.push(user);
},
sendMessage: function(msg, user) {
for (var i = 0; i < this.users.length; i++) {
if (this.users[i] !== user) {
this.users[i].receive(msg, user);
}
}
}
};
var User = function(name) {
//this.mediator = mediator;
this.__proto__.mediator = chatMediator;
this.mediator.addUser(this);
this.name = name;
};
User.prototype.send = function(msg) {
console.log(this.name + ": sending message: " + msg);
this.mediator.sendMessage(msg, this);
};
User.prototype.receive = function(msg, user) {
console.log(this.name + ": received message from " + user.name + " : " + msg);
};
var Adam = new User("Adam");
var Poll = new User("Poll");
var Jon = new User("Jon");
var Allan = new User("Allan");
Adam.send('Hi');