执行命令时,发布者和执行者分开
举例:
//接收者
class Receiver {
exec() {
console.log('执行');
}
}
//命令者
class Command {
constructor(receiver) {
this.receiver = receiver;
}
cmd() {
console.log('执行命令');
this.receiver.exec();
}
}
//触发者
class Invoker {
constructor(command) {
this.command = command;
}
invoke() {
console.log('发布任务');
this.command.cmd();
}
}
//士兵
let soldier = new Receiver();
//小号手
let trumpeter = new Command(soldier);
//将军
let general = new Invoker(trumpeter);
general.invoke();
// 发布任务
// 执行命令
// 执行
网页富文本编辑器操作,浏览器封装了一个命令对象,这些api是浏览器已经暴露给我们直接使用的,不需要我们自己去定义。
document.execCommand('bold');
document.execCommand('undo');
还有其它复制粘贴插入图片等等,,,