• js 职责链模式


    某个业务需求需要多次更改,或需要后续维护,或代码显得不灵活时,把事情分解成各个小流程。

    例:

    //获取Id
    var getId=function (_domId) {
    return document.getElementById(_domId)
    };
    //添加内容
    var domRender=function (_domArr, _boxId, _alertBoxId) {
    if(_domArr===undefined){return false}
    var _domStr=_domArr.join('');
    if(_boxId!==undefined){domCreat(_domStr,_boxId,_alertBoxId)}
    };
    //创建dom
    var domCreat=function (_domStr,_boxId,_alertBoxId) {
    if(_boxId===undefined){return false}
    getId(_boxId).innerHTML=_domStr;
    if(_alertBoxId!==undefined){domEvent(_alertBoxId)}
    };
    //添加事件
    var domEvent=function (_alertBoxId) {
    getId(_alertBoxId).addEventListener('click',function () {
    alert('1');
    })
    };
    domRender(['<input id="alertBotton" type="button" value="点我一下" />'],'box','alertBotton');
    domRender(['<p id="txt">我想吃饭了,有点饿</p>'], 'box')


    总结:
    //传入的构造函数拥有transmit方法的时侯,就调用该方法
    function Chain(Fn) {
    this.nextRender=Fn||null
    }
    Chain.prototype={
    transmit:function () {
    if(this.nextRender){
    this.nextRender.transmit()
    }
    }
    };
    //事件绑定
    var bindEvent=new Chain({
    transmit:function () {
    console.log('-----bindEvent Start----');

    console.log('添加事件中...');

    console.log('-----bindEvent End----');
    }
    });

    //创建dom
    var createDom=new Chain(bindEvent);
    createDom.transmit=function () {
    console.log('-----creatDom start----');

    console.log('添加dom中...');

    console.log('-----creatDom end----');
    Chain.prototype.transmit.call(this);
    };
    //创建字符串
    var domRender=new Chain(createDom);
    domRender.transmit=function () {
    console.log('-----domRender start----');

    console.log('创建dom字符串中...');

    console.log('-----domRender end----');
    Chain.prototype.transmit.call(this);
    };
    domRender.transmit();
     
  • 相关阅读:
    Bash
    FireDAC
    忽然看到字符汉字特殊字符在计算机中的存储方式
    Windows环境下使用Nginx搭建负载均衡
    Session跨域、Session共享、Mode=StateSever方式解决问题
    原生Js在各大浏览器上、火狐、ie、谷歌、360等出现的不兼容问题。
    Sina 新浪Ip归属地Api 很好用的,使用get请求
    前端页面使用 Json对象与Json字符串之间的互相转换
    使用bootstrap 弹出效果演示
    Mvc自定义路由让支持.html的格式
  • 原文地址:https://www.cnblogs.com/redn/p/8117928.html
Copyright © 2020-2023  润新知