示例参考 - ES6
<script>
class User {
notify(msg) {
console.log('新消息:' + msg);
}
}
class Department {
constructor() {
this.subs = [];
}
subscribe(user) {
this.subs.push(user);
}
newMessage(msg) {
this.subs.forEach(user => {
user.notify(msg);
});
}
}
let a = new Department;
let a1 = new User;
let a2 = new User;
let a3 = new User;
let b = new Department;
let b1 = new User;
let b2 = new User;
let ab1 = new User;
a.subscribe(a1);
a.subscribe(a2);
a.subscribe(a3);
a.subscribe(ab1);
a.newMessage('Yo, from a.');
b.subscribe(b1);
b.subscribe(b2);
b.subscribe(ab1);
b.newMessage('Yo, from b.');
</script>
示例参考 - ES5
<script>
function User () {}
User.prototype.notify = function (msg) {
console.log('新消息:' + msg)
}
function Department () {
this.subs = []
}
Department.prototype.subscribe = function (user) {
this.subs.push(user)
}
Department.prototype.newMessage = function (msg) {
this.subs.forEach(user => {
user.notify(msg)
})
}
var a = new Department
var a1 = new User
var a2 = new User
var a3 = new User
var b = new Department
var b1 = new User
var b2 = new User
var ab1 = new User
a.subscribe(a1)
a.subscribe(a2)
a.subscribe(a3)
a.subscribe(ab1)
a.newMessage('Yo, from a.')
b.subscribe(b1)
b.subscribe(b2)
b.subscribe(ab1)
b.newMessage('Yo, from b.')
</script>
登录后评论