zoukankan      html  css  js  c++  java
  • 用闭包来实现命令模式

    在JavaScript设计模式当中闭包的使用非常的广泛。

    命令模式:把请求封装成对象,从而分离请求的发起者和请求的接受者

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>命令者模式</title>
    </head>
    <body>
    <p>点击执行弹出打开电视机,点击撤销弹出关闭电视机</p>
        <button id="execute">执行</button>
        <button id="undo">撤销</button>
        <script type="text/javascript">
        window.onload=function(){
            //receiver
            var Tv={
                open:function(){
                    alert("打开电视机");
                },
                close:function(){
                    alert("关闭电视机");
                }
            };
            
            var createCommand=function(receiver){
                var execute=function(){
                    return receiver.open();
                };
                var undo=function(){
                    return receiver.close();
                };
                return{
                    execute:execute,
                    undo:undo
                }
            }
             
             var setCommond=function(command){
                 document.getElementById("execute").onclick=function(){
                     command.execute();
                 }
                 document.getElementById("undo").onclick=function(){
                     command.undo();
                 }
             }
    
            setCommond(createCommand(Tv));
        }
        </script>
    </body>
    </html>
  • 相关阅读:
    Linux下安装confluence汉化破解版
    某种可以解决一切问题的方法
    普通平衡树(treap)
    文艺平衡树(splay模板)
    [CQOI2015]任务查询系统
    [NOIP2016]天天爱跑步
    NOI2018_Day1_T1_归程
    Picture
    bzoj3524 Couriers
    bzoj2588 counting on a tree
  • 原文地址:https://www.cnblogs.com/t1amo/p/6767862.html
Copyright © 2011-2022 走看看